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
develop-with-domain-expert
Search
haljik
August 31, 2019
Programming
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
develop-with-domain-expert
haljik
August 31, 2019
More Decks by haljik
See All by haljik
ドメイン駆動設計の紹介
haljik
0
140
Isolating-the-domainの紹介
haljik
3
1.8k
普段使いのDDD
haljik
21
9.5k
実録Spring MVC
haljik
10
5k
ドメイン駆動設計を軽快に実践するための工夫
haljik
22
7.7k
Other Decks in Programming
See All in Programming
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
320
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
940
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
200
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.8k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
220
5分で問診!Composer セキュリティ健康診断
codmoninc
0
1k
AIが無かった頃の素敵な出会いの話
codmoninc
1
450
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
610
yield再入門 #phpcon
o0h
PRO
0
1.1k
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
380
Flow は今どうなっているか
mizdra
PRO
0
590
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
150
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
380
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Scaling GitHub
holman
464
140k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
410
Writing Fast Ruby
sferik
630
63k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Done Done
chrislema
186
16k
30 Presentation Tips
portentint
PRO
1
370
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
470
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Transcript
υϝΠϯΤΩεύʔτͱ ߦ͏ۀγεςϜ։ൃ ݄ !IBMKJL
ͱ͋ΔେاۀͰ ࣮ࡍʹߦΘΕͨۀγ εςϜ։ൃʹͯ ˞ҙਤతʹ΅͔ͨ͠Γݴ༿Λม͑ͨΓ͠ ͨΓ͍ͯ͠·͢
݄தࠒ w ։ൃମ੍·ͩͳ͍ w !JSPG͞ΜɺϓϦϯε͞Μ͕গ͠ઌʹίϯαϧςΟϯάʹ ೖ͍ͬͯͨ w ྻºߦ΄Ͳ͋Δɺͳʹ͔ͷ༧࣮Λཧͯͦ͠͏ ͳΤΫηϧϑΝΠϧ w
γεςϜԽͷ༧ࢉΛऔಘ͢ΔͨΊͷը໘Πϝʔδͱࢿྉ
ԿΘ͔Βͳ͍ ࢿྉ͋Δ͕ͦ͜ʹ͋Δݴ༿ͷॏΈ ҙਤ͕ෆ໌ͩͱ಄ʹೖͬͯ͜ͳ͍
݄ υϝΠϯΤΩεύʔτͱ։ൃϝϯόʔͷإ߹ͤ
ମ੍ͷ֬ೝ
ମ੍ w υϝΠϯΤΩεύʔτ w 'ࢯݱۀΛؒ୲͍ͯͯ͠ΛѲ͓ͯ͠ΓɺγεςϜԽ͍ͨ͠ਓ w ΦʔΨφΠβʔ w 0ࢯ'ࢯΑΓ࠷ॳʹ૬ஊΛड͚ͯ͜ͷΛ࡞ͬͨਓ w
։ൃଆ w !JSPGϓϩάϥϚʔ w !LB[VIJUP@NϓϩάϥϚʔ w SJUPϓϩάϥϚʔ w ϓϦϯεσβΠφʔ w ࢲ !IBMKJL ϓϩάϥϚʔ
։ൃଆશһύʔτλΠϚʔ ͭϦϞʔτϫʔΫ ʮΈΜͳͲΕ͙Βׂ͍͚࣌ؒΔͷʁʯ JSPGʮि͙Β͍ʯ LB[VIJUP@Nʮि͙Β͍ʯ SJUPʮि͔͙Β͍ʯ IBMKJLʮि͙Β͍ʯ ˞࣌ؒͰ͢
υϝΠϯΤΩεύʔτ'ࢯ ۀͷ֓ཁΛઆ໌
ۀͷ֓ཁ w ෦ͷԼͰ͋Δ෦߹Θͤͯ΄Ͳ͋Δࣄۀͷ݄࣍අ༻ΛΤΫηϧͰܭը w ࣮ͱಥ͖߹Θͤͯ༧࣮Λཧ w ෦͝ͱʹ·ͱΊͨͷΛ͞Βʹ̍ͭʹ·ͱΊΔϚʔδۀ͕ͱͯେม มߋ͕ࠩѲͰ͖ͣɺΤΫηϧϑΝΠϧͷσάϨʔυ͕සൃ w ܭըཱҊԼهͷ໊લͰ͝ͱʹ̑ճߦΘΕΔɻ
w ॳϚΫϩ w ॳ݄ผ w मਖ਼ϚΫϩ w मਖ਼݄ผ w ணݟࠐ w ࣮ͱͷಥ͖߹Θͤຖ݄ w ͲͷܭըཱҊ࣌ظͰมΘ͔ͬͨɺॳͱ࣮ͷࠩͲ͏͔ͱ͍͏Α͏ͳνΣοΫΛߦ͏ͷͰܭ ըཱҊ࣌ظ͝ͱͷࣈ͓ͯ͘͠ඞཁ͕͋Δ
݄த०·ͰʹγεςϜԽ͍ͨ͠
ϛʔςΟϯάޙ ಄ʹඳ͍ͨϞσϧ
ཌ݄ ճͷϛʔςΟϯά w ਖ਼݄ٳΈ໌͚Ͱ·ͩԿ࡞ͬͯͳ͍ w ݄̍·ͰͷਐΊํͷେ·͔ͳ߹ҙ w Ұ൪ࠔ͍ͬͯΔ෦Ͱ͋Δɺ֤෦ͰऔΓ·ͱΊͨ ϑΝΠϧͷ౷߹࡞ۀͰɺσάϨʔυ͕ى͜Βͳ͍ɺฤ ूϛεΛݟͭΒΕΔΑ͏ͳΈΛ࡞Δ
w ؆қతͳαϚϦݟΕΔΑ͏ʹ͢Δ w ܭըཱҊ࣌ظʹ͍ͭͯυϝΠϯΤΩεύʔτ'ࢯͱձ
ܭը࣌ظʹ͍ͭͯͷձ w ։ൃऀʮ֤ܭը࣌ظҎ֎ʹܭըΛมߋ͍ͯ͠ΔͱܯࠂΛදࣔ͠Α͏ͱߟ͑ͯ ͍·͢ɻ֤ܭըࡦఆͷ۩ମతͳ࣌ظܾ·͍ͬͯ·͔͢ʁʯ w 'ࢯʮܾ·͍ͬͯ·͢ɻ ॳϚΫϩ݄ʙཌ݄ɺॳ݄ผ݄ʙ݄ मਖ਼ϚΫϩ݄ʙ݄ɺमਖ਼݄ผ݄ʙ݄ ணݟࠐ݄ʙ݄̏ͱͳΓ·͢ɻ ͔͠͠ɺϚΫϩͱ݄ผͰฤू͢ΔॴҰॹͳͷͰ۠ผແͯ͘ྑ͍Ͱ͢ɻʯ
w ։ൃऀʮͳΔ΄ͲɻͰॳ͕݄ʙ݄ɺमਖ਼͕݄͔Β݄ɺணݟࠐ͕ ݄͔Β݄Ͱ͢Ͷɻʯ w 'ࢯʮͦͷ௨ΓͰ͢ʯ
ϛʔςΟϯάޙ ಄ʹඳ͍ͨϞσϧ
ͱΓ͋͑ͣ࡞Δ w ͬ͘͟Γ಄ͷதʹ͋ͬͨϞσϧΛ࣮ w ΤΫηϧΛಡΈࠐΜͰϞσϧʹϚοϐϯά w Ϛοϐϯάͨ͠ϞσϧΛӬଓԽ w อଘͨ͠ͷΛ·ͨΤΫηϧͰग़͢ w
ΤϥʔνΣοΫܯࠂͳͲࢴࣳډϨϕϧͰʮ͜Μͳͷ͕ग़· ͢Αʯ͕Θ͔Δ͚ͩ w ؆қαϚϦ์ஔ
Ұिؒޙ݄ ճͷϛʔςΟϯά w ؆қαϚϦͷత֬ೝͷ݁ՌɺଞͰ༻Ͱ͖Δ͠໌֬ͳ త͕ͳ͍ͷͰɺ༏ઌΛԼ͛Δ͜ͱʹ w ̍िؒͰͭͬͨ͘ͷΛσϞ w ϑΟʔυόοΫΛΒ͏
σϞʹର͢ΔϑΟʔυόοΫ w 'ࢯʮ෦ΛऔΓ·ͱΊ͍ͯΔ୲ऀ͕ใࠂͰ͖ΔΑ͏ʹ ͯ͠΄͍͠ʯ w ։ൃऀʮΘ͔Γ·ͨ͠ɻػೳͷܗͪ͜Β͔ΒఏҊ͠· ͢ɻૣΊʹ෦ͷऔΓ·ͱΊ୲ऀͷํʑʹू·͍ͬͯͨ ͖ͩɺ͓൸࿐ͯ͠ҙݟΛΒ͍·͠ΐ͏ʯ
͜ͷ࣌ͷϞσϧ
Ұिؒޙ݄ ճͷϛʔςΟϯά w ෦୲ऀʹΑΔʮใࠂʯ͔ΒɺͦΕΛ౷߹͢ΔʮϚʔδʯ ۀΛσϞ w ݄ॳ०෦୲ऀʹݟͤͯҙݟΛΒ͏͜ͱʹ
̎िؒޙ݄ w ෦ͷऔΓ·ͱΊ୲ऀ໊͕ॳΊͯࢀը w 'ࢯ͕ݱࡏ·ͰͷऔΓΈΛઆ໌ w γεςϜͰͷۀΛσϞ w 'ࢯͱ෦औΓ·ͱΊ୲ऀͰ࣭ٙԠ
'ࢯͱ෦୲ͷձ w ෦୲ʮաڈ݄ͷ࣮Λมߋ͢Δ͜ͱͰ͖·͔͢ʁʯ w 'ࢯʮܯࠂग़·͕͢ɺͰ͖·͢ɻʯ w ෦୲ʮશ෦͕ใࠂ͢Δ͚ͲͦͷؒϚʔδͰ͖Δ ͷʁʯ w 'ࢯʮͰ͖·͢ɻʯ
͜͏͍͏ΓऔΓ͕ଓ͘
ಈ࡞͢ΔιϑτΣΞͱɺͦΕΛݟͨυϝΠϯΤΩεύʔτ ಉ࢜ͷձΛฉ͘͜ͱͰࣗͨͪͷϞσϧͷ͔֬Β͠͞Λݕ ূͰ͖ͨ
͜͜·Ͱ͕ॳظͷϞσϦϯά
ͦͷޙ w ݄̏த०·Ͱผཁ݅ͷϞσϦϯάͱฏߦͭͭ͠ɺத֩ ͷۀ͕ճΔΑ͏ʹࡉ෦ΛϒϥογϡΞοϓ w ݄ʹத֩ۀ෦͚ͩͷຊ൪ӡ༻͕ແࣄ։࢝͞ΕΔ
͜ͷஈ֊ͰͷϞσϧ
ͪΐͬͱͨ͠ϒϨʔΫεϧʔ
ϒϨʔΫεϧʔલ ཁ݅ɿܭը࣌ظʹೖྗॴ͕มΘΔͷͰɺؒҧͬͨॴ͕มߋ ͞Ε͍ͯΔͱܯࠂΛग़͍ͨ͠ w ݄͔Β݄·ͰॳܭըͷཱҊ࣌ظͳͷͰमਖ਼ܭըɺணݟࠐ͕ม ߋ͞Ε͍ͯΔͱܯࠂΛग़͢ w ݄͔Β݄͕मਖ਼ܭըͷཱҊ࣌ظͳͷͰॳܭըɺணݟࠐ͕มߋ͞ Ε͍ͯΔͱܯࠂΛग़͢ w
݄͔Β݄·Ͱ͕ணݟࠐͷཱҊ࣌ظͳͷͰॳܭըணݟࠐ͕ม ߋ͞Ε͍ͯΔͱܯࠂΛग़͢ ݱࡏ͕Ͳͷ࣌ظʹ͋ͨΔ͔ΛΔඞཁ͕͋Δ
֘෦ͷϞσϧ ͜ͷϞσϧͰݱʹ͓͍ͯͲͷܭըཱҊظؒʹ͋ͨΔ͔Λݕग़Մೳ
ϒϨʔΫεϧʔͷ͖͔͚ͬ ͋Δଧͪ߹ΘͤͰͷձʹग़͖ͯͨݴ༿ w ̛ࢯʮ݄ʙ݄ॳܭըͳͷͰʯ w ։ൃऀʮॳܭը݄͔ͬͯΒ݄ͩͱݴ͏͓Ͱ͕ͨ͠ ͜ͷ߹ͷҙຯͲ͏͍͏͜ͱͰ͠ΐ͏͔ʁʯ w ̛ࢯʮॳܭըΛݟΔͷ͕݄͔Β݄ͱ͍͏ҙຯͰ͢ɻʯ w
։ൃऀʮͳΔ΄ͲɺཱͯͨܭըΛӡ༻͢Δɻ༧࣮ΛݟΔ࣌ ظ͕݄͔Β݄ͱ͍͏ҙຯͰ͢Ͷʯ
ϒϨʔΫεϧʔޙ ͜ͷมԽʹΑͬͯݱࡏ͕ͲͷܭըཱҊ࣌ظ͔ʹՃ͑ͯɺ Ͳͷӡ༻࣌ظͰ͋Δ͔Λݕग़͢ΔೳྗΛ֫ಘͨ͠ ݁Ռͱͯ͠අ༻ೖྗʹ͓͚Δܯࠂ͕ΑΓࡉ͔͘ग़ྗͰ͖ΔΑ͏ʹͳΔ
ݱࡏͷঢ়گ w ݄ʹӡ༻։͍͕࢝ͯͨ͠ɺͦͷޙϒϥογϡΞοϓ ΛॏͶ݄͔ͯΒຊ֨Քಇ͍ͯ͠Δ w ॳͷ෦ॺ෦͚ͩͰͳ͘࠷ऴ෦ॺͰར༻͞Ε͍ͯΔ w 'ࢯᐌ͘ ʮύοέʔδɺϕϯμʔʹґཔ͢Δͷͱൺֱ͔ͯ͠ ͳΓίετͰޮՌతͳγεςϜΛ࡞Δ͜ͱ͕Ͱ͖ͨʯ
ࠓͷॴେޭͱݴͬͯྑͦ͞͏
ϙΠϯτ w ࡞Γॏཁ Ͱ͖ΔݶΓతͳಈػΛ࣋ͭਓΛΞαΠϯ͢Δ w త͕ᐆດͳػೳ༏ઌॱҐΛԼ͛ͯίΞʹूத͢Δ w ॏཁͳεςʔΫϗϧμʔΛૣΊʹ·͖͜Ή ʮҰॹʹߟ͑ͯͭͬͨ͘ײʯ͕ޙͷڠྗؔʹͭͳ͕Δ w
༷ΤϯδχΞ͕ߟ͑ͯఏҊ͢Δ ͦΕΛಋ͖ͩͨ͢ΊͷϧʔϧΛυϝΠϯΤΩεύʔτ͔ΒҾ͖ग़͢ w ձΛϞσϧʹө͢Δ w ձͰϞσϧΛݕࠪ͢Δ
࠶ݱੑ w 0ࢯ͔ͩΒ͜ͷΛ༻ҙͰ͖ͨ w 'ࢯ͕͍͔ͨΒૣ͍ஈ֊ͰίΞʹूதͰ͖ͨ w ։ൃϝϯόʔ͕ۀܥͰ%%%Λࢦ͖ͯͨ͠ਓͨͪͩͬ ͨ ࠶ݱͰ͖Δؾ͍ͯ͠ͳ͍
্࣮Ͱͨ͜͠ͱ ΤΫηϧ্ʹ͋Δେྔͷ߲ΛͲ͏ѻ͏͔ w ϞσϧԽ͢ΔͷίΞͷؔ৺ࣄͷΈ w ଞจࣈͲ͓Γʮͦͷଞʯͱͯ͠ΩʔόϦϡʔͰอ࣋ w ඞཁʹͳͬͨΒϞσϧԽ͢Δ
ΞʔΩςΫνϟ υϝΠϯϞσϧ ৄ͘͠IUUQTHJUIVCDPNTZTUFNTFLLFJJTPMBUJOHUIFEPNBJO
ͬͨπʔϧ w υϝΠϯΤΩεύʔτͱͷΓͱΓ 'BDFCPPLϝοηϯδϟʔ ҙਤతͰͳ͍͚Ͳ w ։ൃऀಉ࢜ͷΓͱΓ 4MBDL(JUIVC*446& w
ϞσϧͷՄࢹԽ +*(IUUQTHJUIVCDPNEEEKBWB+JH