Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DDD失敗談を話して学んだこと
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kinoko
October 21, 2017
Technology
6.5k
17
Share
DDD失敗談を話して学んだこと
関西Javaエンジニアの会(関ジャバ) '17 10月度 - connpass
https://kanjava.connpass.com/event/68169/
での発表資料です。
Kinoko
October 21, 2017
More Decks by Kinoko
See All by Kinoko
自作キーボードにチャレンジしてみた。 ver 2.0
sammy7th
0
2.1k
私が考える理想の開発チーム
sammy7th
0
700
ビジネスルールを軸とした ソフトウェア開発手法 「CCSR」
sammy7th
7
2.6k
お家に居れなくなって 3週間ゲストハウス暮らしをしていた話
sammy7th
2
520
家で仕事中にインターフォンに気づかず困っているのでIoTでなんとかしたい
sammy7th
1
210
ホットサンドメーカーで作るスイーツ
sammy7th
0
320
JVM入門 -Javaプログラムが動く仕組み-
sammy7th
35
14k
Udemyでプログラミング の動画講座を販売してみた
sammy7th
1
910
Git運用基礎
sammy7th
1
300
Other Decks in Technology
See All in Technology
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
140
FlutterでPiP再生を実装した話
s9a17
0
240
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
190
【Oracle Cloud ウェビナー】データ主権はクラウドで守れるのか?NTTデータ様のOracle Alloyで実現するソブリン対応クラウドの最適解
oracle4engineer
PRO
3
130
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
280
OpenClawでPM業務を自動化
knishioka
2
350
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
130
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
SaaSの操作主体は人間からAIへ - 経理AIエージェントが目指す深い自動化
nishihira
0
130
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
270
How to install a gem
indirect
0
2k
やさしいとこから始めるGitHubリポジトリのセキュリティ
tsubakimoto_s
3
2.1k
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
From π to Pie charts
rasagy
0
160
Abbi's Birthday
coloredviolet
2
6.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
The SEO Collaboration Effect
kristinabergwall1
0
410
My Coaching Mixtape
mlcsv
0
90
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
870
Believing is Seeing
oripsolob
1
100
Transcript
DDDࣦഊஊΛͯ͠ ֶΜͩ͜ͱ Abe Asami
ࣗݾհ "CF"TBNJl͖ͷࢠz େࡕͷϑϦʔϥϯεϓϩάϥϚ IUUQOPDPOPOFU !BBUI 4DBMBɺ"OESPJE +BWB,PUMJO
ࠓͷ༰ • ͱ͋ΔϓϩδΣΫτΛDDDͰΔͧʂͱҙؾ ࠐΜͰ͡ΊͨͷͷԿ͔͏·͍͔͘ͳ͔ͬ ͨ • ͱ͍͏ΛScalaMatsuri(2017/02)ͷΞϯΧϯ ϑΝϨϯεͰͬͨͱ͜Ζ৭ΜͳҙݟΛΒͬ ͨͷͰɺͦΕΛ͍·͞Β·ͱΊͯΈ·ͨ͠
ϓϩδΣΫτ֓ཁ
ΫϥΠΞϯτ͞Μ͔Βͷཁ • AirB̋bΈ͍ͨͳͭΛ࡞ͬͯ΄͍͠
ิࣄ߲ • ΫϥΠΞϯτ͞ΜITʹৄ͘͠ͳ͍ • ·ͣʮ࠷ݶʯͷػೳͰβ൛ΛϦϦʔε͠ɺ৭ΜͳਓʹҙݟΛฉ͖ͳ͕Βվળ͠ ͍ͯ͜͏ͱ͍͏ํ • ͍ͣΕେ͖͍αʔϏεʹ͍͖͍ͯͨ͠ • ظؒ3ϲ݄ఔɻͷͭΓͩͬͨ
• 1ϲ݄͙Β͍Φʔόʔ͠·͕ͨ͠ɺҰԠແࣄೲ͠·ͨ͠ • PlayFramework2+ScalaͰ࣮ • ࣮ऀࢲ1ਓ
ϓϩδΣΫτ։࢝࣌ͷࢲ ʮΑʔ͠DDDͰΔͧʂʯ
ओͳཧ༝
ͬͯΈ͔ͨͬͨ • ࢲͷDDDཧղϨϕϧ • ʮϢʔβʔઢͰͷࢥߟͱ࣮ࡍͷίʔυͷဃΛۃྗͳ ͘͢ʯͷ͕తͱ͍͏ཧղ • աڈʹ࡞ͨ͠ࢿྉʮDDDͬͯͳΜͩΖ͏ʁʯ • https://speakerdeck.com/sammy7th/
dddtutenandarou • ΤϦοΫɾΤϰΝϯεͷຊະಡ
ཧ༝ɾͦͷଞ • ༷ͱίʔυͷണΛগͳ͘Ͱ͖ΔͳΒͦͷ ํ͕Α͍ͱ͓ͬͨɻ • DDDͷϓϩδΣΫτͷ͓ख͍Λͨ͠ܦݧ͕ ͋ͬͨ • ಉ͡Α͏ͳߏ(ΫϦʔϯΞʔΩςΫνϟ) ͰΕ͍͚Δͱ͓ͬͨ
͔ͯ͘͠Play2+DDDͰ։ൃ ͕։࢝͞Εͨʂ
ͦͯ͠ ͏·͍͔͘ͳ͔ͬͨʂʂʂ
Ͳ͏͍͏͜ͱʁ • ࣮ίετ͕ߴ͘ɺ3िؒఔͰํస
Before
After
αʔϏεͰ༻͢Δݴ༿͕શવܾ ·Βͣɺίʔυͱͷണൃੜ͠·͘Γ • ྫ) ෦Λି͠ग़͢ਓΛԿͱݺͿ͔ͳͲ͕ͳ͔ ͳ͔ܾ·Βͳ͍ɻܾ·ͬͯมΘΔɻ • ϢϏΩλεݴޠࣙయ͕શવػೳ͠ͳ͔ͬ ͨɾɾɾ
ͱ͍͏Λ ScalaMatsuri(2017/02) ͷΞϯΧϯϑΝϨϯεͰ ൸࿐ͨ͠ͱ͜Ζ ৭ΜͳҙݟΛ͍͖ͨͩ·ͨ͠
ɹ͍ͨҙݟʢൈਮʣ
ͦͦɺ៉ྷʹϞσϦϯά͔ͨͬͨ͠ͷʁ ΫϦʔϯΞʔΩςΫνϟͰ࡞Γ͔ͨͬͨ ͷʁʁ • ࢲ͕Γ͍ͨͷɺࠓޙͷ͜ͱߟ͑ͯػೳ ֦ு͍͢͠ݟ௨͠ͷ͍͍ίʔυΛ͔͘͜ͱ • ͦͷͨΊʹΫϦʔϯΞʔΩςΫνϟͰͭ͘ Γ͔ͨͬͨ •
ͦͷͨΊʹϞσϦϯά͕ඞཁͩͱ͓ͬ ͨ
࠷ॳ͔Β͖Ε͍ͳϞσϦϯάΛ͠ Α͏ͱͨ͠ͷ͕ѱ͔ͬͨͷͰʁ • Ϟσϧগͣͭ͠ਐา͍ͯ͘͠ͷ • εέʔϧͷ͜ͱ࠷ॳΕ͍͍ͯΜ͡Όͳ ͍ʁ • Ϟσϧ୳ٻӔר͖
ϞσϦϯάʹࣝͷטΈࡅ͖ ͷϑΣʔζ͕ඞཁ • 1ਓͰͰ͖Δ͜ͱͰͳ͍ • ͪΌΜͱΫϥΠΞϯτ͞Μͷதʹ͍͍ͬͯͬͯɺ ͔ͬ͠ΓΛ͠ͳ͍ͱμϝ • ΫϥΠΞϯτ͞Μ͕ཧղͰ͖ΔΑ͏ʹɺֆʹ͢Δ ͳͲͯ͠ͱʹ͔͘טΈࡅ͘
• ΞΠίχοΫϓϩηεͱ͍͏ͷ͕͋ΔΑ
ೲظίετͩͱݫ͍͠ͷͰ • ͪΌΜͱϞσϦϯά͢Δͷ͕͔͔࣌ؒΔ • ϞσϦϯά͚ͩͰԿϲ݄ͬͪΌ͏ • ͓٬͞ΜͱϞσϧΛͭΊΔͷ͍͠ • DDD͡Όͳͯ͘୯७ͳCRUDʹམͱ͠ࠐΜͩ
ํ͕͍͍߹͋Δ
DDD༷ͱίʔυ͡Όͳͯ͘ɺ಄ͷத ͱίʔυΛҰகͤ͞Δͱ͍͏͜ͱͰʁ • ͳΔ΄Ͳʂ
Βͬͨҙݟ͔Β Θ͔ͬͨ͜ͱ
DDDΛ࣮ફ͢Δ͜ͱͱΫϦʔϯΞʔΩς ΫνϟͰ࡞Δ͜ͱΛͬͪ͝Όʹ͍ͯͨ͠ • DDDΛ࣮ફ͢ΔͱΫϦʔϯΞʔΩςΫνϟͰ ࡞Δ͜ͱʹͳΔͱ͍͏ࢥ͍ࠐΈ͕͋ͬͯɺͦ Ε͕ͦͦצҧ͍ͩͬͨ
ΫϥΠΞϯτ͞Μͱͷͷ٧Ί ํ͕ѹతʹ͔ͬͨ • ఆظMTGߦ͍͕ͬͯͨɺMTGͰܾ·Βͳ͍ࣄ߲ʹͭ ͍ͯʮܾΊ͓͍͍ͯͯͩ͘͞ʯͱ͛ͯ͠·͍ͬͯͨ • PJཧπʔϧνϟοτπʔϧͰͷΦϯϥΠϯͰͷΓ ͱΓ͕͏·͘ػೳͤͣɺີͳΓͱΓ͕Ͱ͖͍ͯͳ͔ͬ ͨ •
ૣ͍ஈ֊ͰΦϑϥΠϯͰͷΓͱΓΛ૿͖͢ ͩͬͨ
࣍ʹྨࣅͷҊ͕݅͋Ε ࣮ફ͍ͨ͜͠ͱ
DDD͕͍͍ͯΔ͔Ͳ͏͔ݕ౼ ͢Δ • Ҋ݅ͷنظؒతʹίετʹݟ߹͏͔Ͳ͏ ͔ • ϞσϦϯάͷίετ • ࣮ίετ
DDDΛ࣮ફ͢Δ߹ɺຊ࣭Λ ݟޡΒͳ͍Α͏ʹ͍ͨ͠ • ៉ྷͳઃܭͰ࡞ΔͨΊʹDDDͰΔ • ϢʔβʔઢͰͷࢥߟͱ࣮ࡍͷίʔυͷဃΛۃྗͳͨ͘͢ΊʹDDDͰΔ • υϝΠϯʹ͍ͭͯ͠߹͏͜ͱʹΑΓ։ൃऀҎ֎ͷਓ։ൃʹר͖ࠐΉ • ΫϥΠΞϯτ͞Μͷதʹ͍ͬͯɺͪΌΜͱҰॹʹ͠߹͏
• ؔऀͷೝࣝΛυϝΠϯʹམͱ͠ࠐΈɺͦΕΛίʔυʹམͱ͠ࠐΉ • ಄ͷதͱίʔυΛҰகͤ͞Δ • ↑͜͜·ͰͰ͖Δͷ͕ཧͰ͋Δ͕ɺظؒతʹ͍͠߹ଥڠඞཁ
࠷ॳ͔Β͖Ε͍ͳͷΛ࡞Δ͜ͱ ʹͩ͜ΘΓ͗͢ͳ͍Α͏ʹ͢Δ • ࣗͷѱ͍บͩͱ͓͏
·ͱΊ • ॳɺ͕ࣗແ͗ͯؕͬͨ͢᠘͔ͱࢥͬͯ ͍ͨͷͰ͕͢ҙ֎ͱ͋Γ͕ͪͷΑ͏Ͱ͢ • ΈΜͳ͖Λ͚ͭͯʂ
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠