ノートの端の書き残し

UnityやらC#やら。設計が得意かもしれない。

読書感想文「Clean Craftmanship」

Clean Craftmanship 規律、基準、倫理

www.amazon.co.jp

~50% テスト駆動開発

前半は超具体的にテスト駆動開発の手法説明です。驚くくらい具体的。ボウリングのスコア計算とか、素因数分解とか、実際の仕事で使うか?というような いかにも教育的な実装例に、一切省略なく曖昧な部分無くテスト駆動開発を実践しています。

自分はテスト駆動開発についてちゃんと勉強したことが無く、「テストを先に作る」くらいの認識でした。しかし究極的なテスト駆動開発はそんなレベルではなく、正直ここまでする必要あるか?と思ってしまうレベル。後半を読むと、この開発が本当に求めているゴールがわかり、実際毎回ここまで徹底してテスト駆動開発することは無いと理解しましたが、最も極端な例を知ることは十分に意味があると思います。

51% ~ 70% 設計、リファクタリング

Clean Architectureなどで語られる、「シンプルな設計」を実現するための設計の考え方やリファクタ手法について。ここはある程度設計について学んだことがあれば再確認する程度の内容だと思います。

www.amazon.co.jp

71% ~ 100% チーム開発、プログラマの心構え

プロダクトを成功させるためにチームで開発を進めるためのプログラマの心構え。ペアプログラミングやモブプログラミング、工数見積もりの在り方など具体的で、且つプログラムそのものとは少し外れた仕事についての記述がまずあります。この辺はレガシーソフトウェア改善ガイドなどと似た内容かと思います。

www.amazon.co.jp

心構えに関しては、なんというか、すごくリファクタするやる気を出させてくれますw

これは冗談ではなく、リファクタに一番必要なのは「やる気」だと思っています。

  1. シンプルな設計について十分な知識を身に付けただけではプロダクトコードが改善されることは無い
  2. やる気(とクソコードへの怒り)を加えると改善が遂行される
  3. チームビルディングを加えると改善された状態が維持される

というのは個人的にもすごく経験があり、決して無視できない要素だと思います。自分が知識身に付けるだけでプロダクトに反映されてなければ何の意味も無いですからね。

Amazonレビューでも、「やる気が出る」みたいなコメントを見かけましたが、同意します。プロとしてやる気出していきましょう。