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
710
ビジネスルールを軸とした ソフトウェア開発手法 「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
2026-04-02 IBM Bobオンボーディング入門
yutanonaka
0
200
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
2
350
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
150
Cursor Subagentsはいいぞ
yug1224
2
140
「できない」のアウトプット 同人誌『精神を壊してからの』シリーズ出版を 通して得られたこと
comi190327
3
570
レガシーシステムをどう次世代に受け継ぐか
tachiiri
0
260
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
0
360
スクラムを支える内部品質の話
iij_pr
0
260
今年60歳のおっさんCBになる
kentapapa
1
150
互換性のある(らしい)DBへの移行など考えるにあたってたいへんざっくり
sejima
PRO
0
550
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
230
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
0
200
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
470
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
91
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
120
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
310
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
480
Leo the Paperboy
mayatellez
6
1.6k
Tell your own story through comics
letsgokoyo
1
880
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ͰΔ • υϝΠϯʹ͍ͭͯ͠߹͏͜ͱʹΑΓ։ൃऀҎ֎ͷਓ։ൃʹר͖ࠐΉ • ΫϥΠΞϯτ͞Μͷதʹ͍ͬͯɺͪΌΜͱҰॹʹ͠߹͏
• ؔऀͷೝࣝΛυϝΠϯʹམͱ͠ࠐΈɺͦΕΛίʔυʹམͱ͠ࠐΉ • ಄ͷதͱίʔυΛҰகͤ͞Δ • ↑͜͜·ͰͰ͖Δͷ͕ཧͰ͋Δ͕ɺظؒతʹ͍͠߹ଥڠඞཁ
࠷ॳ͔Β͖Ε͍ͳͷΛ࡞Δ͜ͱ ʹͩ͜ΘΓ͗͢ͳ͍Α͏ʹ͢Δ • ࣗͷѱ͍บͩͱ͓͏
·ͱΊ • ॳɺ͕ࣗແ͗ͯؕͬͨ͢᠘͔ͱࢥͬͯ ͍ͨͷͰ͕͢ҙ֎ͱ͋Γ͕ͪͷΑ͏Ͱ͢ • ΈΜͳ͖Λ͚ͭͯʂ
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠