レガシーコードからの脱却 ソフトウェアの寿命を伸ばし価値を高める9つのプラクティス(David Scott Bernstein)

オススメ度★★★

会社の人も読んでいたし、Qiitaの2019年大賞かなんかに選ばれていたので、読んでみた。

結果、この本はソフトウェア開発に携わるなら必読だと思った。ペアプロやテスト駆動開発といったエクストリームプログラミングのプラクティス等をやるべき理由が力強く説明されている。個人的には、CLEANコード、設計は最後にやる、あたりが大きな収穫。

チームメンバーにも広めると共に、少しずつ実践していこう。チームに適したやり方を模索するのが一番大事だと思うので、常に改善していこう。

メモ。

  • ソフトウェア開発者は「何度も書き直す」職業
  • テストと動くものを作ってから、保守性のために設計する
  • 設計に思い入れを持たずに必要なら設計を変える
  • 意図を示すプログラミング
  • オブジェクトの生成と利用を分離
  • 設計レビューとコードレビューでは、まず設計と設計を選択した理由を議論すべき
  • コード品質はCLEAN
    • 凝集性 Cohesive
    • 疎結合 Loosely coupled
    • カプセル化 Encapsulated
    • 断定的 Assertive
    • 非冗長 Noredundant
  • 断定的がイマイチよく分からない
    • 振舞いは関係するデータを持つクラスに実装すべき
  • あるクラスのテストをたくさん書かなければいけないのは、凝集性に問題があるサイン
  • テストの結果がテストしているオブジェクト以外から得られるのは断定性の問題があるサイン
  • クラスに名前がつけにくいのは凝集性に問題があるサイン

読みたい本

  • 絡み合っている依存関係を抽出
    • The Mikado Method
  • 受け入れテスト駆動開発
    • Lean-Agile Acceptance Test-Driven Development
    • Specification by Example
  • 良いストーリーを書く
    • User Stories Applied

コメントを残す