2016年7月8日リーダブルコードも終盤に少しずつ近づいてきました。今まではどちらかというとコードの点や線の技術に注目してきましたが、これからは面的な要素に注目していきます。リーダブルコードでは「無関係の下位問題を積極的に見つけて抽出する」とありますが、要は抽象度をあげることと私は解釈しています。「無関係の」とは「依存度をさげる(疎結合)」ということでしょうか。インターフェイスを簡潔にするコードの抽象化プログラムというのは処理が複雑にからみあっていればからみあっているほど理解が難しくなりますし、それにともないバグの確率も高くなります。テストなどもできません。理想的なコードとは1つ1つの処理が独立した部品のようになっていて、互いに依存することなく切り離せるような関係になっていなければいけません。そのために下記のような工夫が大切になってきます。ユーティリティーコード文字列の処理や配列の処理、ファイルの読み書きなどはどんなプログラムでも使います。このような処理を個別のプログラムに1つ1つ書いていると同じ事を何度も書くことになります。このような処理は「ユーティリティークラス」として独立したクラスにしておくのが良いでしょう。PHPなどでは言語自体にこういったライブラリが組み込まれており、特に配列がらみの処理などは充実しています。プログラム自体の抽象化ユーティリティーは完全に独立した処理ですが、完全には独立していなくてもプロジェクト内部で共通した処理を汎用化するだけでもかなり意味があります。簡単に言えば、パッケージ全体で使用する関数はより上部のクラスに共通のメソッドをして持たせるほうが良いでしょう。インターフェイスを簡潔にするインターフェイスが汚い場合(引数が多い、処理が複雑)は引数をととのえたり、事前のメソッドをつくなりして、わかりやすい形にしましょう。下記リンクの例がわかりやすかったので紹介します。コメントをキャンセルメールアドレスが公開されることはありません。ハッシュ前回の続きです。前回は配列、連結リストについて学習したので今回はハッシュについて学習します。通常のプログラマとして仕事をしておりますと、通常の実装よりは不具合時の調査のほうが難しいことが多々あります。新サーバー構築をしていたときにwebサーバーとしてnginxを立てましたが、外部から接続ができません。500エラーすら吐かれず、ログも残っていません。...クラスメソッドとインスタンスメソッド以前staticメソッドを定義したときに、記法がインスタンスメソッドの呼び方でも呼べてしまうことがあったので、これを機にインスタンス・クラス×変数・メソッドちょっと調べてみました。メインに使ってました(PHPでは)。