【ドメイン駆動設計 本格入門】ハイライトと感想
[DevLOVE Premium第3回]ドメイン駆動設計 本格入門に参加してきました。
このような勉強会には何度か参加していますが、その度に新しい気づきがあっておもしろいです。講演形式でも直接お話を聞くと、話し手が強調していることをよりはっきりと受け取ることができて印象的です。
今回の内容は特に「区分」にフォーカスを当てていたように感じました。まず、ビジネスルールこそ複雑さの根源であり立ち向かうべきもの、としたうえで、区分による条件や分岐が特に複雑であると紹介されていました。
業務アプリケーションは、数学的なロジックが求められる難解さよりも、条件や分岐で入り組んだり散らばったりしてしまいがちです。フレームワークを使いこなしてもビジネスルールの複雑さを解消できるわけではないのですが、それについても言及されていました。フレームワークなどのアーキテクチャ論は準備だということです。
ビジネスルールの記述を独立したモジュールに分離する
アーキテクチャはそのための準備だということですね。同様に、エンティティやリポジトリなどの要素もその前の基本事項であり、エヴァンス本は第3部からが本番だとのこと。読み直してみよう。ところでエヴァンス本という呼び方には市民権があるのですね。すると実践~はヴァーノン本ということに??
エンティティよりも値オブジェクトが主役、オブジェクト指向とは型指向のプログラミング。というのはこれまでも講演者が主張していたことですが、ますます強調してきているなと感じます。ファクト・ルール・ゴール、という整理の仕方もビジネスルールの輪郭を際立たせるものとして理解しておきたいところです。
オブジェクト指向ってなんだっけ?に始まって、ドメイン駆動設計を知ってから追いかけてきていますが、勉強することはまるで尽きないなと感じます。プログラマーは常に勉強し続けないといけない云々なんてことが言われますが、そんなに悲観することではないです。むしろいつだって勉強し始めることができるってことだし、変に焦るよりもこれは楽しいことだって思いたいですね。