オブジェクト指向と ドメイン駆動設計を学んで 2023/11/29 Serverless LT 初心者向け LT大会 #40 瓜生 賢輝
自己紹介 • 名前 瓜生 賢輝 • 業務 IT系企業 23年度新入社員
目次 • オブジェクト指向とは • カプセル化 • 継承 • ポリモーフィズム • ドメイン駆動設計とは • ユビキタス言語 • エンティティとバリューオブジェクト • アグリゲート • まとめ
オブジェクト指向とは 役割分担 協調していくことで一つの仕組みが 動作するという考え方 重要な3要素 ・カプセル化 ・継承 ・ポリモーフィズム
カプセル化 • データのまとまりとそれに付随する手続きを全てま とめ情報隠蔽 • 外部からは手続きの呼び出しのみによって操作でき るようにする • 外部から想定しない要素を利用されることを防げる • 内部構造を知らずとも手続きが行える
継承 クラスに上下関係を持たせてあるクラスが別の クラスの性質を受け継ぐようにすること
ポリモーフィズム 同一メッセージに対して受信したオブジェクト ごとに異なる振る舞いをできるようにすること
ドメイン駆動設計とは ドメインに焦点を当てドメインモデルを形成し それをコードに落としこもうとする設計手法 ドメインモデル ドメイン(専門領域)から必要な知識を抽出したもの 重要な4要素 ・ユビキタス言語 ・エンティティ ・バリューオブジェクト ・集約
ユビキタス言語 エンジニア、営業 る言葉 開発に携わる人双方に通じ アジャイル とは? アジャイル 開発 リードナー とは? リードナー チャリング
エンティティとバリューオブジェクト エンティティ 一意性を持つオブジェクト 可変性を持つ バリューオブジェクト ドメインの一つの側面を表現するためのオブジェクト 一意性を持たない バリュー オブジェクト エンティティ
アグリゲート ・関連するオブジェクトの集まり データの変更について一括して扱える ・エンティティのルートを持っており、 外部からアクセスできる唯一のオブジェクト
まとめ ・オブジェクト指向 協調していくことで一つの仕組みが動作するという考え方 「カプセル化」「継承」「ポリモーフィズム」 ・ドメイン駆動設計 ドメインに焦点を当てドメインモデルを形成しそれをコー ドに落としこもうとする設計手法 「ユビキタス言語」「エンティティ」 「バリューオブジェクト」「アグリゲート」