良いコード/悪いコードで学ぶ設計入門で設計スキルが上がった1
の続編
最後は9〜17章
以下、内容
・YAGNI
先回りして作ると必要ないものになる可能性が高い
・リファクタリング
機能追加とリファクタリングは同時にやらない
・名前設計
プログラミングにおける名前は可読性を高めるだけでない
関心を分離し、名前を設計する必要がある
例えば、商品だと名前がでかい
極めて意味範囲の狭い名前を付与する。
その結果、不要なロジックを排除してクラスを小さくできる
存在ベースでなく目的ベースで名前を決める
商品ではなく、予約品等
データクラスにはinfoやdataは使わない
ロジックが持てるような名前にする
動詞と目的語のメソッドは注意する
動詞だけのメソッドにする
・驚き最小の原則
使う側が想像した通りに驚きが最小になるように設計する
・コマンドクエリ分離
状態の変更と状態の返却は同時に行わずに分離する
・ダブルミーニング
-1は、空という意味にするような
ある値に複数の値を持たせること
避けるべき
・設計について
厳密に設計しすぎずに、サイクルを回し続けることでよくしていくべき
・設計ルールについて
一番できる人が決める
多数結にしない
・コードレビューでしてはいけないこと
ネガティブな言葉や表現を使わない
ツールの使用を思いとどまらせない
どっちでも良いことで勝ち負けをつけない
・TDDとテストなし
TDDだとテストコードを書く必要があるため
一見テストコード書かない方が早く完成しそうです
ところが実験ではTDDの方が早いという結果が出ている
・クープマン目標値
影響力を無視できない存在レベルで、シェア争いに本格参入する目標値
10.9%と定義されている
現場の改善をしたい場合には20人なら3人以上仲間を作ると良い
・学習について
インプット2
アウトプット8
本書はとても良い本でした
エンジニアなら必ず読む1冊です。
ぜひどうぞ