little hands' lab

ドメイン駆動設計、アジャイルプラクティスを実践し、解説しています。

2019-01-01から1年間の記事一覧

議論が噛み合わないと思ったら、「問題解決の5階層」でどこがずれているのか確認する

チームで議論するときに常に心がけているのが、「問題解決の5階層」です。 この図で重要なことは、 下の階層で認識が一致していないと、上の階層では絶対認識があわない ということです。 「あれ、議論が噛み合っていないな?」と思ったら、この階層に照らし…

CQRS実践入門 [ドメイン駆動設計]

この記事では、CQRSの入門として、軽量CQRS、別名クエリモデルについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUseCase層なのか 整合性をどうやって担…

WEB+DB PRESS特集「体験 ドメイン駆動」を執筆しました [DDD]

WEB+DB PRESS Vol.113の特集として、「体験 ドメイン駆動設計 - モデリングから実装までを一気に制覇」を執筆しました。ボトムアップドメイン駆動設の@nrslibさんとの共著です。 抽象的な解説だけでなく、実際にモデリングから実装まで行うサンプルがある こ…

DDD戦術的設計入門セミナー[ドメイン駆動設計]

DDD戦術的設計入門セミナーアジェンダ ゴール DDDの実装パターンの狙いの理解 自分で資料を読み解く足がかりにする DDDのモデリングと実装パターンの関係 良い設計の指標 モジュールの責務とは 凝集度と結合度とは ドメイン知識とユースケースの区別 責務の…

DDD Talk Meetup #2を開催しました

DDD-Community-Jpとして久々のイベントを開催しました! ddd-community-jp.connpass.com 今回は 聞くだけではなくコミュニケーションをたくさんとってもらいたい! というのを重視して、今回は会議室ではなくレストランで飲み放題、の開催としました。 その…

「DDDのモデリングとは何なのか、 そしてどうコードに落とすのか」資料 / Q&A

Mix Leap Study 特別編 - レガシーをぶっつぶせ。現場でDDD! コラボカンファレンス に登壇させていただいたのでで、その際の資料です。 また、当日sli.doでたくさんのご質問をいただいたので、まとめてお答えします。 発表資料 DDDのモデリングとは何なのか…

「実践ドメイン駆動設計」から学ぶDDDの実装入門 レビュー

「実践ドメイン駆動設計」から学ぶDDDの実装入門 DDD関連の新刊が出たのでレビューします。 「実践ドメイン駆動」(以下IDDD)という書籍を元に、それを読み解くための書籍、という位置付けの珍しい書籍です。確かにIDDD本は分厚くて難解ですからね。 CodeZine…

ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD]

DDDの文脈の中で、 「ドメイン知識とユースケース(≒アプリケーションの知識)は何が違うのか?」 という疑問がよく持たれます。 この記事ではその違いを説明し、DDDのコードにどう反映するかを書きます。 あるToDoアプリの仕様 事例として、ToDoアプリの話を…

現場でDDD!のハンズオン、持ち帰ってやってみた

genbade-ddd.connpass.com こちらのイベントに参加してきました。 タイトルに「レガシーをぶっつぶせ」とあった効果か、基本レガシーに立ち向かった実体験ベースの具体的な、泥臭い話が多くて非常に楽しかったです。 DDD周りって結構抽象的な話に終始してし…

【コード問題集1】責務違反のRepository

今日の記事では、 「こんなコードを書くとあとでびっくりするからやめた方がいいよ!」 という事例をご紹介します。 問題のあるコード 以下のようなタスクEntityがあったとします。 コンストラクタで生成時のルールを,doneメソッドで状態遷移のルールを表現…

Hunter Industriesの方のモブプロ体験会で教わった、本場のモブプロプラクティス

Mob Programming体験会 with Chris Lucianというイベントに参加してきました。 Chrisさんは最近のモブプロブームの発端となっている(という認識)Hunter Industries社の方で、Regional Scrum Gathering Tokyo 2019の基調講演に登壇された方です。モブプロを実…