pandanoir / gakushu

technical topics that I wanna know
0 stars 0 forks source link

DDD #11

Open pandanoir opened 4 years ago

pandanoir commented 4 years ago

Domain-driven design (DDD) is the concept that the structure and language of your code (class names, class methods, class variables) should match the business domain.

(from Domain-driven design)

pandanoir commented 4 years ago

なんかアーキテクチャの話というより、設計するときの手法らしい(Domain Driven Designなんだからそりゃそう)。

pandanoir commented 4 years ago

依存関係逆転の原則

たとえばDIはこれを行う手法の一つ。たとえばA→Bと直接依存すると、Bの変更でAも修正しなければならないかもしれない。ここでAはCというインターフェイスに依存、BはCを実装とすれば、たとえBをDへ差し替えたとしてもAはそれを認識しなくて良くなる。

pandanoir commented 4 years ago

https://little-hands.hatenablog.com/entry/2018/12/17/what_is_ddd

わかりやすい。

DDDは モデルをコードに落とすのにオブジェクト指向設計の手法を使っている という立場で、オブジェクト指向が普通の人たちからすれば割と普通の考えだったりします。それに加えて、DDD独自のニーズに最適化したデザインパターンを定義しています。

また、現実→モデルという発想も、モデル駆動開発という発想を使っているもので、それはDDDだけのものではありません。その手法が普通の人からしても、これもまた当然のことを言っているように感じるでしょう。

このように、DDDでは既存の様々な手法を統合して、「現実→モデル→コード」を実践することで、ソフトウェアの価値を高めることを目指すものなのです。