🐥
10分DDDまとめ
10分DDD
@little_hand_s さんのYouTubeチャンネルにあるこちらの再生リストと公開資料のリンク及び内容のメモです
https://www.youtube.com/watch?v=HgtCKlOzRiQ&list=PLXMIJq1G-_66F9woQpidJfe4HHCFxdXaA
1. ドメインモデリング
- DDDとは
- モデリングってどうやるの?
- sudoモデリングとは
- システム関連図 (s)
- ユースケース図 (u)
- ドメインモデル図 (d)
- オブジェクト図 (o)
- sudoモデリングとは
参考記事
2. 設計のツボ 高凝集/低結合
- どうしたら設計をよくできるのか
- 原則、パターン等
- 色々あるが、これ一つ抑えるだけで複数の利点を得られる
- 「高凝集/低結合」
- クラスの責務を明確・単一に、モジュール菅野依存度を低く
良い設計のための参考書籍
その他参考資料
3. ドメインモデルをコードに落とす方法
- モデルをコードで表現するために重要なこと
- こまめなフィードバックサイクルと改善
- 保守性の高い実装パターンの使用
- エンティティ、値オブジェクト、リポジトリ、、、
- コーディング時の重要方針
- ドメインモデルの知識を対応するオブジェクトに書く
- 常に正しいインスタンスしか存在させない
4. 集約って一体なんなんだ
- 集約とは?
- リポジトリに入出力する範囲
- 適切な範囲は実装しないとわからないのでモデリング時に決め切らない
- クエリモデル
- 集約は更新処理の整合性確保に特化しているので、参照処理で課題がある場合はクエリモデルを検討する
参考記事
その他参考資料
5. ドメイン駆動設計のアーキテクチャ(オニオンアーキテクチャ)
- おすすめのアーキテクチャは?
- オニオンアーキテクチャ
- クリーンアーキテクチャなどと比べてシンプル
- オニオンアーキテクチャ
参考記事
こちらには比較対象となる以下4つについての記載があります
- レイヤードアーキテクチャ
- ヘキサゴナルアーキテクチャ
- オニオンアーキテクチャ
- クリーンアーキテクチャ
6. アジャイルとは何なのか DDDとはどうつながるのか
- アジャイルとはマインドセット(思想、考え方)である
- 下記アジャイルマニュフェスト参照
- アジャイル開発の本質
アジャイルとは- 予測的ではなく、適応的である
- プロセス思考ではなく、人思考である
- DDDもアジャイルの思想に沿った開発手法の一つ
参考記事
アジャイルマニュフェスト
IPA アジャイルソフトウェア開発宣言の読みとき方7. コードレビューで必ず気をつけること
- 合言葉は「責務!テスト!」
- 責務
- レイヤーの責務違反の実装がないか
- クラスが高凝集/低結合になっているか
- メソッドの責務を表現できているか
- テスト
- ユニットテストを書きやすいか
- テストが書きにくい場合は設計に問題がある可能性がある
- ユニットテストを書きやすいか
8. ベロシティを使った中期計画どうやるの
※公開資料なし?
- スクラムだと中期(1ヶ月以上)の計画について明確に定義されていない
- 中期計画の立て方
- 前提
- SPの粒度がある程度安定
- ベロシティがある程度安定
- 計画の流れ
- 中期開発のストーリーポイント(SP)を出す
- ベロシティを出す
- 合計SP * (100% + 統計的バッファ率) / ベロシティ = かかるプリント数と計算する
-
合計SP / ベロシティ = かかるプリント数とすると炎上する
-
- 統計的バッファ率の考え方
- 内訳を明示する(例
- SP自然増(見積もり誤差)
- 要件追加
- 結合テスト
- 内訳を明治することで納得できるし調整しやすくなる
- 統計的に判断することが重要
- 各SP増加内訳を記録して、次回に活かす
- 内訳を明示する(例
- 前提
9. スクラム再入門
- スクラムの進め方の全体像
- スクラムの解決しようとする課題
- スクラムはフレームワークであり、方法論ではない
- スクラムが基づく理論
スクラムガイド 2020/11
その他メモ
2023/02/09にこちらのイベントがある模様です
Discussion