【読了】「Adaptive Code ~ C#実践開発手法 第2版」
Adaptive Code ~ C#実践開発手法 第2版 (マイクロソフト関連書)
- 作者: Gary McLean Hall,長沢智治(監訳),クイープ
- 出版社/メーカー: 日経BP
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログ (1件) を見る
「Adaptive Code ~ C#実践開発手法 第2版」を読了しました。
学び
第3章 依存関係と階層化
3.3.2 横断的関心事
横断的関心事(ロギングやトランザクション管理など)は、
カプセル化した上でコードに適用するのが悪影響の少ない方法。
アスペクト指向プログラミングの導入→C#のAORライブラリとして「PostSharpがおすすめ。」
第5章 テスト
5.1.3 より複雑なテスト
モックフレームワークMoq2の利用。
下位のレイヤーでスローされた例外を上位の新しい例外でラッピングすることが推奨される。
5.2.1 保守可能なテストの書き方
SUT(System Under the Test)を表す変数にはsutという名前をつけるのには一貫性の利点がある。
テストメソッドの名前は実装ではなく意図が伝わるようにする。
5.3 テストのBuilderパターン
Builderパターンを利用し、モッククラスのメソッドを数珠つなぎに出来るようにすることで、
テストの意図を明確にすることが出来る。
テストの循環的複雑度は1を超えることがないようにする。
第12章 依存性注入
App.configファイルのセクションを使って、インターフェイスを実装にマッピングする方法を示すことができる。
(.NetFramework4.7.2より、ASP.Net WebFormsなどでもDependency Injectionが行えるようになったが、
web.configなどで実装を定義できるかが不明だったが、この方法で実装できる?)
感想
第1部ではスクラム、カンバンについての紹介にページが割かれているが、
第2部以降ではコード例なども交えて実践的な開発手法についての解説に入っていく。
- デザインパターン(Null Object / Adapter / Strategy / Builder / Composite / etc... )
- ユニットテスト、特に保守可能なテストコード
- テスト駆動開発
- リファクタリング
- SOLIDの5つの原則
- 単一債務の原則( Single Resoponsibility Principle)
- 開放/閉鎖の原則( Open / Closed Principle )
- リスコフの置換原則( Liskov's Substitution Principle )
- インターフェイス分離の原則( Interface Segregation Principle )
- 依存性反転の原則( Dependency Inversion Principle )
- 依存性注入
- 結合性と凝集性
- ドメイン駆動設計 / AOR
などなど多岐にわたるプラクティス・原則について、実践的なコード例を多数交えて紹介している。
コード例も、参考書等でよくある説明のために簡素化された形ではなく、タイトルどおり「実践的」であると言える。 前述した「テストのBuilderパターン」などは早速現場で利用し始めている。
かなりのボリュームではあるが、オブジェクト指向の初心者/中級者が上級者にステップアップしていくために
必ず役に立つ1冊であると断言できる。
※Amazonのレビューが2件しかないのが本当に不思議。