C# DDD オブジェクト指向プログラミング システム設計 クラス設計
初級者脱却レベルくらいの方を対象にDDDについて解説します。
できること
DDDとは
ドメイン駆動設計の略で、現実の「こと」や「もの」をいかにしてコードに落とし込むのか?を定義したものです。
DDDを学ぶメリット
DDDを学ぶことで、システム開発の際に設計が行き当たりばったりになってしまったり、どうしていいかわからなくなることが少なくなります。
また、共通のシステム設計を扱うことになるので、コードの見通しも良くなります。
使用するプログラミング言語について
参考書でC#が使われているため、当分はC#での講義になりますが、次点でPHPへの対応も考えています。
私に教わるメリット
参考書にあった課題を用意しているため、単なる輪読会などよりも深い理解を得られます。
また、大学時代アルバイトでしたが、塾講師として働いており、主担当の子の偏差値を10ポイント以上アップさせた実績もありますので、教える力はある程度あるかと思います。
形式
講義形式のプランになりますので、他の方と同時に受講したくないという方には向いていません。
参考カリキュラム
下記は参考カリキュラムになります。ある程度プログラミングの基本的な部分を理解しており、ある程度実際の就業時の流れのイメージができている方が順調に勉強した場合、イメージカリキュラムです。進度はその方に合わせます。
第一回
Chapter.1 ドメイン駆動設計とは
Chapter.2 システム固有の値を表現する「値オブジェクト」
第二回
Chapter.3 ライフサイクルのあるオブジェクト「エンティティ」
第三回
Chapter.4 不自然さを解決する「ドメインサービス」
第四回
Chapter.5 データにまつわる処理を分離する「リポジトリ」
第五回
Chapter.6 ユースケースを実現する「アプリケーションサービス」
第六回
Chapter.7 柔軟性をもたらす依存関係のコントロール
Chapter.8 ソフトウェアを組み立てる
第七回
Chapter.9 複雑な生成処理を行う「ファクトリ」
第八回
Chapter.10 データの整合性を保つ
第九回
Chapter.11 アプリケーションを1から組み立てる
第十回
Chapter.12 ドメインのルールを守る「集約」
第十一回
Chapter.13 複雑な条件を表現する「仕様」
第十二回
Chapter.14 アーキテクチャ
Chapter.15 ドメイン駆動設計の扉を開こう
参考書
ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本
https://www.shoeisha.co.jp/book/detail/9784798150727