skillup

技術ブログ

プログラミング全般

コードの抽象化

投稿日:

リーダブルコードも終盤に少しずつ近づいてきました。

今まではどちらかというとコードの点や線の技術に注目してきましたが、これからは面的な要素に注目していきます。

リーダブルコードでは「無関係の下位問題を積極的に見つけて抽出する」とありますが、要は抽象度をあげることと私は解釈しています。

「無関係の」とは「依存度をさげる(疎結合)」ということでしょうか。

コードの抽象化

プログラムというのは処理が複雑にからみあっていればからみあっているほど理解が難しくなりますし、それにともないバグの確率も高くなります。またテストなどもできません。

理想的なコードとは1つ1つの処理が独立した部品のようになっていて、互いに依存することなく切り離せるような関係になっていなければいけません。

そのために下記のような工夫が大切になってきます。

ユーティリティーコード

文字列の処理や配列の処理、ファイルの読み書きなどはどんなプログラムでも使います。このような処理を個別のプログラムに1つ1つ書いていると同じ事を何度も書くことになります。このような処理は「ユーティリティークラス」として独立したクラスにしておくのが良いでしょう。

PHPなどでは言語自体にこういったライブラリが組み込まれており、特に配列がらみの処理などは充実しています。

プログラム自体の抽象化

ユーティリティーは完全に独立した処理ですが、完全には独立していなくてもプロジェクト内部で共通した処理を汎用化するだけでもかなり意味があります。簡単に言えば、パッケージ全体で使用する関数はより上部のクラスに共通のメソッドをして持たせるほうが良いでしょう。

インターフェイスを簡潔にする

インターフェイスが汚い場合(引数が多い、処理が複雑)は引数をととのえたり、事前のメソッドをつくなりして、わかりやすい形にしましょう。

下記リンクの例がわかりやすかったので紹介します。

http://affiliate.ks-product.com/js-wrapper-function/

 

 

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

プログラミングを習得するときに必要な2つの大事なこと

元々私は塾で仕事をしていましたが、いろいろ紆余曲折ありましていまではWEBエンジニアとして仕事をしております。 エンジニアとしてのキャリアは3年ぐらいなので正直あまりないのですが、開発者と平行してプロ …

no image

ファジープロジェクト対策 その1

5月ぐらいから着手していたプロジェクト(顧客管理ソフト)が終焉を迎え、検証段階に入ったので、記して置きたいことなど。 数ヶ月程度ですが、自分が携わったプロジェクトの中では過去最大クラスのものでした。 …

no image

リーダブルコードまとめ

リーダブルコードほぼ読み切ったのでまとめを。チェックリスト化して、常にこれを見ながらコードは書いたほうがよさげ 前半のまとめや参考リンクでみたものとマージします。 Contents1 変数の名称2 コ …

no image

設定ファイルの置き場所

一般的にレベルの高いソースとは保守性が高いものを指します。特にWEB系ですと仕様変更がしょっちゅうなので変更があったときにいかに少ない工数で対応できるかが大切です。 保守性をあげる工夫はいろいろありま …