1日遅れましたが、こちらのイベントに参加(アーカイブを視聴)してきたので、印象的だったことと感想を書いていこうと思います。
会で印象的だったこと
松岡さんのコーディングスタイルをリアルタイムで見れた
正しい/正しくないの議論はさておき、松岡さんのコーディングスタイルを見ることができました。
- アサーションルーレットよりもテスト観点(What)とどのようにテストするか(HOW)が一致していることを重視する
- テスト対象コードではなく、テスト名/条件等も決められた順番で記述するのではなく、情報が追加で分かったタイミングでリファクタリングしていく
- ユースケースのテストでは、基本的にはリポジトリやDBなどをモックしてユニットテストするだけ。結合テストはどうしても必要な場合*1にやる
...上記のようなコーディングスタイルを見ることで、自分自身やチームメンバーのコーディングスタイルと比較して、どのようなコンテキストでどちらのコーディングスタイルにメリデメがあるのか考えるきっかけが作れて良かったです。
エンティティ/値オブジェクト/ユースケース/リポジトリのテストの違い
エンティティ/値オブジェクト/ユースケース/リポジトリそれぞれについて、テストを書く際に共通して注意するポイント, それぞれについて注意するポイント、というのが整理できてよかったです。
それぞれについて、DDDに限らずプログラミングやテストの作法のどのような考え方が根底にあって、その考え方をどのようにエンティティ/値オブジェクト/ユースケース/リポジトリのテストに適用しているのか聴けたので、納得感が強かったです。
全体を通した感想
前回に引き続き、座学ではなくコードを実際に書いている様子を見ることでDDDにおけるテストが何か理解を深めていくという形式だったので、実践的にどのように松岡さんがDDDを活用しているのか、(DDDに限らず)松岡さんがどのように体系的な知識を活用したりトレードオフをしているのか、というのが知れて楽しかったです。
また、コメントでがんがん松岡さんのコーディングスタイルについての質問もあり、他の方の考えや、松岡さんの判断とは別にどのような選択肢が他にあるのか、という議論ができていたのも学びが深かったです。
松岡さんの新作本により詳細なコードやより詳細な内容が載っているということで、こちらも読んでみようと思います。