2021年12月13日(月曜日)
DDD(ドメイン駆動設計)についての勉強会を開催しました。
11月にDDDの勉強会が行われ、その続きとなる勉強会でした。
■概要
DDDとはという前回のおさらいと、モデリングの手法の紹介。
実際に取り入れるメリットや注意点なども教えていただきました。
■DDD(ドメイン駆動設計)とは
何もアーキテクチャを取り入れずに進めていくと・・・
・Fat Controller,Fat Model
・神クラスや、複雑に依存し合うコード
・無駄な機能が増えていく
徐々にソースが膨大になることで、既存のソースに手を加えづらくなり
最初の勢いがなくなってくる、アジャイルなのに全然俊敏じゃない!!
→PDCAを早く回すために、初期投資をかけて
アーキテクチャを取り入れていこうという考え方
ソフトウェアを効果的、効率的に開発することを目指す
・学習コストはかかるが、エンジニアとしての価値が上がる
・DDDを取り入れている、取り入れたい企業は少なくない
■モデリング手法
代表的なものでは、RDRA(ラドラ)など様々な手法がある
ドメインエキスパートと話し合いながら、システム関連図で要件を定義
*ドメインエキスパート:ソフトウェアを実際に使う人・ターゲット
→ユースケース図をもとに
→→オブジェクト図を作ってモデリング
オブジェクトで分割することで、テストがシンプルになる
一つ一つの細かい粒度でテストが書ける
→→→モデリングをソースで反映
ミクロの視点でコードを書いた時点でわかることもあるので
また戻ってエキスパートと話し合いなどをする
→→→→モデルが蒸留されて無駄がなくなっていく
モデリングがとても重要!!!
■DDDを取り入れるということ
DDDを取り入れていないと技術的負債がほぼほぼできてしまっている現状
・・・初期から意識していくことが重要
・・・新しいドメインが出てきた時に、途中からでもとり入れられる
実際に運用してみて、もっとこうしたいということが出てきたときに、
ソースにことを考えていうのをやめておこうとなってしまいがち
・・・モデルは徐々に改善していくものという思想で設計されている
わかっている人みんなでやっていくもので
チームが全体で相互に言い合う、レビューの文化を根付かせることが大事
11月にDDDの勉強会が行われ、その続きとなる勉強会でした。
■概要
DDDとはという前回のおさらいと、モデリングの手法の紹介。
実際に取り入れるメリットや注意点なども教えていただきました。
■DDD(ドメイン駆動設計)とは
何もアーキテクチャを取り入れずに進めていくと・・・
・Fat Controller,Fat Model
・神クラスや、複雑に依存し合うコード
・無駄な機能が増えていく
徐々にソースが膨大になることで、既存のソースに手を加えづらくなり
最初の勢いがなくなってくる、アジャイルなのに全然俊敏じゃない!!
→PDCAを早く回すために、初期投資をかけて
アーキテクチャを取り入れていこうという考え方
ソフトウェアを効果的、効率的に開発することを目指す
・学習コストはかかるが、エンジニアとしての価値が上がる
・DDDを取り入れている、取り入れたい企業は少なくない
■モデリング手法
代表的なものでは、RDRA(ラドラ)など様々な手法がある
ドメインエキスパートと話し合いながら、システム関連図で要件を定義
*ドメインエキスパート:ソフトウェアを実際に使う人・ターゲット
→ユースケース図をもとに
→→オブジェクト図を作ってモデリング
オブジェクトで分割することで、テストがシンプルになる
一つ一つの細かい粒度でテストが書ける
→→→モデリングをソースで反映
ミクロの視点でコードを書いた時点でわかることもあるので
また戻ってエキスパートと話し合いなどをする
→→→→モデルが蒸留されて無駄がなくなっていく
モデリングがとても重要!!!
■DDDを取り入れるということ
DDDを取り入れていないと技術的負債がほぼほぼできてしまっている現状
・・・初期から意識していくことが重要
・・・新しいドメインが出てきた時に、途中からでもとり入れられる
実際に運用してみて、もっとこうしたいということが出てきたときに、
ソースにことを考えていうのをやめておこうとなってしまいがち
・・・モデルは徐々に改善していくものという思想で設計されている
わかっている人みんなでやっていくもので
チームが全体で相互に言い合う、レビューの文化を根付かせることが大事