def yasuharu519(self):

日々の妄想

リーダブルコード

休憩の合間に読み進めていたけど、読み終えた感想を残しておこうと思う。

本書では、"優れたコード”は読みやすく、簡潔なコードであり、理解しやすいコードであると書かれている。最初にその定義付けがなされた後に、第1部では表面上の改善ということで、変数の名前の付け方、コメントの書き方、内容について、またコメントにする”べきでない”事柄について書かれた。第2部では、もう少し概念を広げ、制御フロー、ロジックの読み方について書かれている。第3部では、読みやすく、管理のしやすいコードにするために、インタフェースの整え方、どんな関数を作るべきかについて書かれた。最後の第4部では、テストについてと、実際のプログラミングを通して今までの話のまとめとしている。

特にその中でも変数の名前の付け方についてはとても参考になった。例としてあったのは、DBへの問い合わせ結果のフィルタリングをする関数として、filter関数があったとする。model.objects.filter('year <= 2001')などと実行した際に、結果として「year <= 2001」が真となるオブジェクトが取り出せるのか、偽となるオブジェクトが取り出せるのか、関数名だけではわからない。"filter"という名前が曖昧なので、真とするならば、select()、偽とするならばexclude()のような関数がいいのでは、と提案されている。

また、こういう本では、tmpとか変数名につけるのは絶対にだめ!って言われるのかと思っていたけど、その使い方に合っていれば問題ないとのこと。つまり、その変数が何のために使われるのかをよく考えた上で、その変数にあった名前をつけろと書かれていた。

他にもコメントの書き方など、一人で開発していく上でも重要な考え方がたくさんあった。なんども読み返そうと思う。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)