little hands' lab

ドメイン駆動設計を布教したい

人気&オススメ記事 / ブログ概要

当ブログについて 主にドメイン駆動設計(DDD)関連の情報を発信していきます。 Twitterアカウント @little_hand_s こちらでもDDD情報発信していくのでよろしければフォローお願いします。DDD周りでご質問などあれば気軽にリプライいただければお答えします^^ …

DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか

Object-Oriented Conference 2020で登壇させていただきました。 その際の発表資料です。 発表資料 DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか from Koichiro Matsuoka www.slideshare.net 本章の内容は技術書典8(2020/3/1)で頒…

DDD Community Jpについて

DDD Community Jpは、Discordというチャットツールを利用しているオンラインコミュニティです。 チャットで質問を行うチャンネルや、ボイスチャットで開催されるオンライン勉強会などがあります。 Discord参加用リンク また、オフラインでも不定期でミートア…

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

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

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

この記事はドメイン駆動設計#1 Advent Calendar 2019の2日目の記事です。 よく誤解されがちなCQRSについて解説します。 DDDの参照系処理で発生する課題 解決策 CQRSのメリット、デメリット 実装時の注意事項 部分的導入について なぜQueryServiceの定義がUse…

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

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

DDDに関する勉強会、ハンズオンなど[ドメイン駆動設計]

DDD関するトピックを中心に勉強会、ハンズオンなどをご要望ベースで開催しております。ご相談は @little_hand_sのDM、もしくはmajackyy@gmail.comまでお願いいたします。 モデリング DDDにおけるモデリングの必要性を解説し、参加者の身近なトピックをテーマ…

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の基調講演に登壇された方です。モブプロを実…

非エンジニアの方に「DDDって何なの?」と聞かれたときの説明[ドメイン駆動設計]

この記事はドメイン駆動設計 #2 Advent Calendar 2018の16日目の記事です。 DDD(ドメイン駆動設計)とは何なのか そもそもDDDってなんなの?ということをちょくちょく聞かれます。 一言で言うと、「開発手法の一種です」ですが、それだと「ふ〜ん」で終わって…

新卒にも伝わるドメイン駆動設計のアーキテクチャ説明[DDD]

ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 以前こちらの記事でアプリケーションアーキテクチャについて書きました。 こちらの記事では比較的ネタ元に忠実な解説をしたのですが…

DDD基礎解説:Entity、ValueObjectってなんなんだ

このエントリは ドメイン駆動設計 #2 Advent Calendar 2018 の9日目です。 8日目は @mafuyuk さんのDDD本3章を読んでこのように理解しましたでした。 10日目は @bigwheel さんの 『「集約の境界と整合性(略」に対して頂いたアイデアの分類と現状での僕の回答…

ドメイン駆動設計は何を解決しようとしているのか

ドメイン駆動設計の定義についてEric Evansはなんと言っているのか の記事の中で、EricEvansのドメイン駆動の定義を引用して以下のように和訳しました。 ドメインの中核となる複雑さと機会に焦点を当てる ドメイン専門家とソフトウェア専門家のコラボレーシ…

企画を立ち上げ、続けていくため大切な1つのこと

個人の性分として、課題感を感じたものに対して企画立ち上げしたりすることが人より多いです。その中で、成果が出て継続していけているものもあれば、軌道に乗らずに終わってしまうものあります。この違いはなんでしょうか? 最近思うことは 「一人で始めな…

DDDセミナーを初開催しました

コードで理解するDDDの戦略的設計・戦術的設計のつながり - connpassというタイトルで、初めてのDDDセミナーを開催しました! アジェンダとしては以下のようななもので、まさかの30分延長して4時間半という長丁場。聞いていただいた方もすごいです。笑 余っ…

Dependency Injectionを「依存性の注入」と訳すのは非常に悪い誤訳

Dependency Injectionとは Dependency Injectionを日本語でなんと訳しますか?大体「依存性の注入」と訳されることが多いですよね。 確かに直訳するとその通りなのですが、実際に行っていることを表していない、非常にミスリーディングな誤訳だと思います。 …

coconalaでJiraのワークフロー相談始めました。

coconalaというサービスで以下のサービスを始めました。 Jiraのワークフロー設計・設定代行します Jiraを導入したけど使いこなせなくて困っている方へ!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https…

オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD]

ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か - little hands' labドメイン駆動 + オニオンアーキテクチャ概略 - little hands' labこれらの記事で書いた通り、私はDDDのレイヤードアーキテクチャを決める際にオニオンアーキ…

Pythonの__init__なんて読むの問題

Pythonの__init__これなんて読むのかと思ってたら、"dunder init"と読むらしいです。 python wikiに書いてあることを抜粋すると、 とあるインターネット上のフォーラム(? リンク切れ)にてMark Jacksonと言う人が以下のように提案したのが発端らしいです。 A…

コードレビューにこそ、コーチングのアプローチを適用するべきかも

3つのコミュニケーションパターン 会社でコーチング研修があり、(主に部下と1on1を想定して)コミュニケーションパターンが以下の3つに分けられるという話がありました。 コーチング:「答え」は相手の中にある相手の話を聞く/問いかける/人となりを認める テ…

DDDに関する質問にバシバシお答えしました [ドメイン駆動設計]

先日、メディアマックスジャパン様(以下、MMJ様)にお邪魔してドメイン駆動設計勉強会を開催してきました。そちらで質疑応答セッションがあり、実際にドメイン駆動設計で開発をしだしたタイミングで出てきた具体的な疑問について色々お答えしました。 おそら…

挙手ファーストで行こう【登壇者 Advent Calendar 2017】

この記事は登壇者 AdventCalenderの記事です。 勢いでJJUG登壇を決めてから3ヶ月で驚きの生活の変化 JJUGに登壇を決めてから3ヶ月後、あれよあれよと京都の企業様にご招待頂き、DDD講師として勉強会を開催するようなことにもなりました。こんなことは3ヶ月前…

【残り6時間!】実際読んでほんとによかったシリーズ② kindle50%セール中のおすすめ技術書たち

先日のサイバーマンデー特集が思いの外反響がよかったので再度! 【50%OFF】日経BP社キャンペーン こちらでオススメの技術書を紹介していきます!せっかく書いたんですがこのセール今日までみたいです。 実際読んでオススメだった技術書たち SOFT SKILLS ソ…

【残り1日!】実際読んでほんとによかった、サイバーマンデーで50%割引のおすすめ技術書たち!!

サイバーマンデーでKindle書籍50%オフセールが開催されてます。 書籍・雑誌 50%OFF以上 サイバーマンデーセールから行けるのですが、ジャンルで技術書というのがありません・・・。そこで、地道~~~に何ページが見ながら探した、(笑)私が過去に読んだおす…