さらにコードを洗練させるために読む本
★★★★★
オブジェクト指向の原則やデザインパターンを駆使して
実際一行一行のコードを書く際にどのような判断を下すべきか、
その職人芸とも呼べる技術を学べる良書です。
オブジェクト指向の原則(SRPやOCPなど)やデザインパターンの
知識をある程度前提としています。
著者も書いているように、「アジャイルソフトウェア開発の奥義」
の続編ととらえると良いです。
著者の経験から、理解・保守・拡張しやすいコードを書くための
ノウハウをコードをリファクタリングしながら一つ一つ解説しており、
非常にためになります。
この本の良い点は、著者の豊富な経験に基づいた考えを学びながら、
賛成したり反対したり深く考えさせられたり、、、
それを繰り返してコードのクオリティに関する哲学を磨けることです。
正直、コードは後に進むに従い膨れ上がって難易度も増すので大変です。
しかし、信じて読めば得るものは大きいです。
その点は前記「アジャイルソフトウェア開発の奥義」と同じです。
印象に残った考えをいくつか挙げておきます。
・関数は、何らかの処理を行うか、何らかの応答を返すかの
どちらかを行うべきで、両方を行ってはなりません。
・プログラマは基本的にコメントをメンテナンスする能力がありません。
コメントは長い時間を経て嘘になるため、コメントに時間を費やすより
解説的なコードを書くことに時間を費やしましょう。
・関数の第一規則は、小さくせよ。第二の規則は、さらに小さくせよ、です。
20行を超えるような関数はほとんどあってはなりません。