2023-01-29

8 章のデザインパターンだけとばして読み切った。

オブジェクト指向を定義することはできない

とあるのに、副題(?)が「PHP で理解するオブジェクト指向の活用」なのはわからない。

1 から 3 章までは正直読むのが辛かったが、 9 章まで読みおわってから読み直すと辛さが軽減した。

すでに経験的に分かってできていたことは以下。

  • 汎化によるインタフェースの抽出
    • 明示的な境界になり、コードとしてチェックできる
    • 多態につかえる
  • テストの記述
    • テストはコードの最初のユーザなので、コードの正しさだけでなく使いづらさの確認ができる
      • それによって DI の必要性 も分かる

この本を読んでできていないことに気づけたことは以下。

  • 依存の向きを安定度で決める

意識的に考えたことがなかったのでこれはトレーニングしようと思う。

雑にかいつまむと、上記をおさえておけば良いように思った。 著者も

残る開発工程は、実際の機能をモデルのインタフェースに沿って作り、依存性を注入すれば、機能するアプリケーションのできあがり

と書いている。そして、

とにかく重要なのは、変化に対応して長く使えるソフトウェアを、苦しい思いをせずに作っていくこと