SlideShare a Scribd company logo
1 of 40
Download to read offline
DDDをやって良かったこと辛いこと
自己紹介
所属
株式会社TechBowl
住んでるところ
東京
何やってる?
「TechTrain」というサービスで反復横跳びし続けている
何でも屋さん(Laravel, Next.js, AWS, etc...)
趣味
お酒(よく溺れる)
サウナ
読書
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 3
TechTrain
エンジニア教育+Directスカウトのサービス。
Coding Stoicをテーマにちゃんとコードを書いていこう
ね!というメンターが多めのエンジニアを育てるための
サービスです。
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 4
一緒に働いてくれる人を探しています!
1. バックエンドエンジニア(Laravel + DDD)
2. フロントエンドエンジニア(Next.js with TypeScript)
3. TechTrainのメンター-> 筋がいい人なら教えたいぜ!
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 5
今日の流れ
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 6
今日の流れ
1. 現状やってることの紹介
2. 実際に何が良いのか辛いのかを紹介
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 7
なぜDDDを入れたのか
当時概念が多くなっていたにも関わらず何もまとめていなかった
生成イベントや更新イベントがとっちらかって徐々にバグが増え出していた
何かしらの整理整頓が必要であるが、どうしたら良いのかわからなかった
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 8
そこに現れてくれたDDDを実践している人の登場w
最初のカジュアル面談のタイミングで概念の図を一緒に起こした
その時点で、これからも概念が大きく増えて横断的に利用される実感が湧いたた
め、DDDをチーム的に導入することに決めた
この時点で、戦術的実装についてはほとんど検討していなかった
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 9
戦術的な設計に必要だと考えていること
DDDの考え方?を実践することになるが、うちではこうしています
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 10
戦術的な設計に必要なことだと考えていること
1. 概念について深ぼる
2. 概念の実運用についても考慮する
3. 1,2を踏まえたモデリングとレビューを行う
4. 1~3を常に回しておく意識をチームで持つ
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 11
1. 概念について深ぼる
1. ライフサイクルを明確化
2. 境界を明確化
3. 関係性を明確化
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 12
2. 概念の実運用についても考慮する
1. 実際に概念が利用されているユースケースを現場に聞く
2. 現場が理想とするフローと現在の運用との乖離を理解する
3. 現状と理想の運用の乖離を埋めるためのステップを設計
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 13
3. 1,2を踏まえたモデリングとレビューを行う
4にも関わるが自分たちが馴染むツールを使うのが大事
TechBowlの場合はWhimsical。
https://zenn.dev/techtrain_blog/articles/334ac36e79d946
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 14
常に合う
ツールを探す
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 15
常に合う
ツールを探す
1. diagram.net
2024-03-29 | DDDをLaravelで実践してきたよ
かったこととツライこと 16
常に合う
ツールを探す
2. Miro
2024-03-29 | DDDをLaravelで実践してきたよ
かったこととツライこと 17
常に合う
ツールを探す
3. whimsical
2024-03-29 | DDDをLaravelで実践してきたよ
かったこととツライこと 18
常に合う
ツールを探す
3. whimsical
最近はWhimsicalで続いています
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 19
続いている理由
1. チーム共有がしやすい
2. 全体と詳細のスイッチングがしやすい
3. ドキュメントもかけるので、機能要件的なところもカバーできる
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 20
4. 1~3を常に回しておく意識をチームで持つ
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 21
戦術的な設計をどうしているか?
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 22
戦術的な設計をどうしているか?
DDDのアーキテクチャを含むTechTrainバックエンド開発環境などを紹介していく!
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 23
必要なもの
1. アーキテクト図
2. Generate用のコマンド
3. アーキテクトを守るための仕組み
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 24
1. アーキテクト図
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 25
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 26
2. Generate用のコマンド
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 27
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 28
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 29
現状良いこと
1. 該当ロジックがある場所がすぐわかる
2. 責務分解がしやすい
3. 情報共有がしやすい
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 30
現状辛いこと
1. コードベースが増える
2. オンボーディングが難しい
3. モデリングを全員で!の継続性
戦略部分の実行継続が難しいということ
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 31
1. コードベースが増える
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 32
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 33
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 34
2. オンボーディングが難しい
コードベースが増えるとも関わるのですが、ファイル数が増えるので、どこに何があ
るのかを覚えるのが難しいなどの問題があります
気合いを入れてオンボーディング資料を用意する必要があります。
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 35
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 36
3. モデリングを全員で!の継続性
ステークホルダー全員でやるのが理想ですが、個人がやってあと他の人が見てないと
いう現象が発生しやすい。
ここは今改善のための話を進めているところです。
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 37
まとめ
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 38
1. スムーズにメンバーが実行するための仕組みが絶対必要
2. モデリングを継続するための仕組みと適切なツールが必要
3. モデリングを関係者全員でやった方が考慮漏れは少なくなる
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 39
モデルは常にカイゼンする。生き物である。
2024-03-29 | DDDをLaravelで実践してきたよかったこととツライこと 40

More Related Content

Similar to DDDをLaravelで実践してきてよかったこととツライことについて説明します。

エンプラでDevRelコミュニティをゼロから作ってみた
エンプラでDevRelコミュニティをゼロから作ってみたエンプラでDevRelコミュニティをゼロから作ってみた
エンプラでDevRelコミュニティをゼロから作ってみたMamoru Ohashi
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Terui Masashi
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Preferred Networks
 
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介Masataka Suzuki
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampイントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampMasahiro NAKAYAMA
 
猫でもわかるDirectConnect.pdf
猫でもわかるDirectConnect.pdf猫でもわかるDirectConnect.pdf
猫でもわかるDirectConnect.pdfHirooKatoh
 
Floss桜山20081008 Hirobe
Floss桜山20081008 HirobeFloss桜山20081008 Hirobe
Floss桜山20081008 HirobeKazuya Hirobe
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Wataru Terada
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedTakahiro YAMAGUCHI
 
Developers.IO2017 A1
Developers.IO2017 A1Developers.IO2017 A1
Developers.IO2017 A1Kazuki Ueki
 
Tech on meetup online#01
Tech on meetup online#01Tech on meetup online#01
Tech on meetup online#01Kazuya Suda
 
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニングServerless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング真吾 吉田
 
UDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfUDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfRikuHamaguchi
 
UDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfUDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfRikuHamaguchi
 
20141108 俺のエンジニアリング #devlove
20141108 俺のエンジニアリング #devlove20141108 俺のエンジニアリング #devlove
20141108 俺のエンジニアリング #devloveTakao Oyobe
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介Recruit Technologies
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。Akihiro Kuwano
 

Similar to DDDをLaravelで実践してきてよかったこととツライことについて説明します。 (20)

エンプラでDevRelコミュニティをゼロから作ってみた
エンプラでDevRelコミュニティをゼロから作ってみたエンプラでDevRelコミュニティをゼロから作ってみた
エンプラでDevRelコミュニティをゼロから作ってみた
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
 
Twilioと山下と学び
Twilioと山下と学びTwilioと山下と学び
Twilioと山下と学び
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介
パワポをよくしただけなのに〜デザインの力で会社に貢献するチームの紹介
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccampイントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
イントロダクション(分散アーキテクチャ時代におけるWebシステムの開発と運用) #seccamp
 
20140321 makershub 専門家が手を動かしながら、
20140321 makershub 専門家が手を動かしながら、20140321 makershub 専門家が手を動かしながら、
20140321 makershub 専門家が手を動かしながら、
 
猫でもわかるDirectConnect.pdf
猫でもわかるDirectConnect.pdf猫でもわかるDirectConnect.pdf
猫でもわかるDirectConnect.pdf
 
Floss桜山20081008 Hirobe
Floss桜山20081008 HirobeFloss桜山20081008 Hirobe
Floss桜山20081008 Hirobe
 
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
 
これができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejectedこれができたらエンジニア|YAPC::Asia 2015 LT rejected
これができたらエンジニア|YAPC::Asia 2015 LT rejected
 
Developers.IO2017 A1
Developers.IO2017 A1Developers.IO2017 A1
Developers.IO2017 A1
 
Tech on meetup online#01
Tech on meetup online#01Tech on meetup online#01
Tech on meetup online#01
 
Serverless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニングServerless Meetup Tokyo #2 オープニング
Serverless Meetup Tokyo #2 オープニング
 
UDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdfUDJ_Company Introduction_2023(All) .pdf
UDJ_Company Introduction_2023(All) .pdf
 
UDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdfUDJ_Company Introduction_2023(All) HP.pdf
UDJ_Company Introduction_2023(All) HP.pdf
 
20141108 俺のエンジニアリング #devlove
20141108 俺のエンジニアリング #devlove20141108 俺のエンジニアリング #devlove
20141108 俺のエンジニアリング #devlove
 
リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介リクルート式 自然言語処理技術の適応事例紹介
リクルート式 自然言語処理技術の適応事例紹介
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 

DDDをLaravelで実践してきてよかったこととツライことについて説明します。