良いコード/悪いコードで学ぶ設計入門で設計スキルが上がった2

良いコード/悪いコードで学ぶ設計入門で設計スキルが上がった1
の続編

最後は9〜17章
以下、内容


・YAGNI
先回りして作ると必要ないものになる可能性が高い

 

・リファクタリング
機能追加とリファクタリングは同時にやらない

 

・名前設計
プログラミングにおける名前は可読性を高めるだけでない
関心を分離し、名前を設計する必要がある
例えば、商品だと名前がでかい

極めて意味範囲の狭い名前を付与する。
その結果、不要なロジックを排除してクラスを小さくできる

存在ベースでなく目的ベースで名前を決める
商品ではなく、予約品等

データクラスにはinfoやdataは使わない
ロジックが持てるような名前にする

動詞と目的語のメソッドは注意する
動詞だけのメソッドにする

・驚き最小の原則
使う側が想像した通りに驚きが最小になるように設計する

・コマンドクエリ分離
状態の変更と状態の返却は同時に行わずに分離する

・ダブルミーニング
-1は、空という意味にするような
ある値に複数の値を持たせること
避けるべき

・設計について
厳密に設計しすぎずに、サイクルを回し続けることでよくしていくべき

・設計ルールについて
一番できる人が決める
多数結にしない

 

・コードレビューでしてはいけないこと
ネガティブな言葉や表現を使わない
ツールの使用を思いとどまらせない
どっちでも良いことで勝ち負けをつけない

 

・TDDとテストなし
TDDだとテストコードを書く必要があるため
一見テストコード書かない方が早く完成しそうです
ところが実験ではTDDの方が早いという結果が出ている

 

・クープマン目標値
影響力を無視できない存在レベルで、シェア争いに本格参入する目標値
10.9%と定義されている

現場の改善をしたい場合には20人なら3人以上仲間を作ると良い

 

・学習について
インプット2
アウトプット8

 

本書はとても良い本でした
エンジニアなら必ず読む1冊です。
ぜひどうぞ

関連記事:

Pocket