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
PSA review
Search
nunulk
August 30, 2017
Programming
3
2.8k
PSA review
「現場で役立つシステム設計の原則」をウェブサービスの現場で役立てたい at DDD Alliance! 現場で役立つシステム設計の原則 Night!
nunulk
August 30, 2017
Tweet
Share
More Decks by nunulk
See All by nunulk
Laravelでテストしやすいコードを書く5 / 5 tips of building testable modules in Laravel
nunulk
0
290
Design It! in a nutshell
nunulk
1
240
PHP Getting Faster
nunulk
0
250
How does learning English broaden your world?
nunulk
0
340
Testing on Laravel
nunulk
1
1.5k
Vue.js + TypeScript + Firebase
nunulk
0
920
Nuxt.js in TypeScript
nunulk
1
420
A startup meets Laravel + Vue.js
nunulk
1
2k
Unit Testing Laravel
nunulk
0
460
Other Decks in Programming
See All in Programming
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
730
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
360
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
26
8.7k
レトロゲームから学ぶ通信技術の歴史
kimkim0106
0
110
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
12
7.1k
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
2
21k
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
400
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
24
9.6k
20250708_JAWS_opscdk
takuyay0ne
2
130
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
1.1k
CDK引数設計道場100本ノック
badmintoncryer
2
480
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Building Adaptive Systems
keathley
43
2.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
YesSQL, Process and Tooling at Scale
rocio
173
14k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
Writing Fast Ruby
sferik
628
62k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Become a Pro
speakerdeck
PRO
29
5.4k
Building an army of robots
kneath
306
45k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
ʮݱͰཱͭγεςϜઃܭͷݪଇʯΛ ΣϒαʔϏεͷݱͰཱ͍ͯͨ OVOVML BU%%%"MMJBODFݱͰཱͭγεςϜઃܭͷݪଇ/JHIU
ࣗݾհ w OVOVML w ϑϦʔϥϯεͷϓϩάϥϚʔ w ओʹΣϒαʔϏεͷΞϓϦέʔγϣϯ։ൃ w 1)1X-BSBWFM w
+BWB/&5ͰۀܥγεςϜͬͯͨ͜ͱ͋Γ ·ͨ͠
w ʮݱͰཱͭγεςϜઃܭ ͷݪଇʯͷॻධ w ΣϒαʔϏε։ൃͷݱ w ΣϒαʔϏε։ൃͷݱʹ ͓͚Δຊॻͷཱͯํ ࠓ͢͜ͱ
ຊॻͷಛ w ΦϒδΣΫτࢦઃܭʗϓϩάϥϛϯάΛɺతͰ ͳ͘ɺมߋΛָͰ҆શʹ͢ΔͨΊͷखஈͱ͍ͯ͠ Δ w ϦϑΝΫλϦϯάલͱޙͷίʔυྫʢ+BWBʣ͕ଟ ࡌ͍ͬͯΔ w
ΞϓϦέʔγϣϯͷίʔυͷΈΛରͱͤͣɺςʔ ϒϧઃܭ63-ઃܭʹݴٴ͍ͯ͠Δ
ຊॻͷಛ w ܁Γฦ͠ମݧ͢Δ͜ͱΛਪ w ੳʗઃܭʗ࣮ͦΕͧΕͷϑΣʔζͰ୲ऀΛ ͚ͳ͍͜ͱΛਪ w ۀͷؔ৺ࣄͷ୯ҐΛɺͦͷ··ϓϩάϥϛϯά୯ Ґͱͯ͠ΫϥεͰදݱ͢Δ͜ͱΛਪ
ΣϒαʔϏεͷݱ lҰํͰɺΠϯλʔωοταʔϏεͷ։ൃͳͲͰɺগͷ ٕज़ऀ͕ͯ͢ͷఔΛ୲͢Δέʔε͕૿͍͑ͯ·͢ɻ͠ ͔͠ɺͪ͜Βͷ߹ɺੳઃܭʹ΄ͱΜͲ࣌ؒΛ͔͚ͣ ʹɺͱʹ͔͘ϓϩάϥϛϯά͢Δɺͱ͍͏Γํ͕ଟ͍Α͏ Ͱ͢ɻ͜ͷΓํɺੳ͠ͳ͕Βઃܭ͢Δͱ͍͏ΦϒδΣ ΫτࢦΒ͍͠։ൃͷΓํͰ͋Γ·ͤΜɻz 1 ʮΦϒδΣΫτࢦͷ։ൃ͏·͍͍ͬͯ͘Δͷ͔ʯ
ΣϒαʔϏεͷݱ lҰํͰɺΠϯλʔωοταʔϏεͷ։ൃͳͲͰɺগͷ ٕज़ऀ͕ͯ͢ͷఔΛ୲͢Δέʔε͕૿͍͑ͯ·͢ɻ͠ ͔͠ɺͪ͜Βͷ߹ɺੳઃܭʹ΄ͱΜͲ࣌ؒΛ͔͚ͣ ʹɺͱʹ͔͘ϓϩάϥϛϯά͢Δɺͱ͍͏Γํ͕ଟ͍Α͏ Ͱ͢ɻ͜ͷΓํɺੳ͠ͳ͕Βઃܭ͢Δͱ͍͏ΦϒδΣ ΫτࢦΒ͍͠։ൃͷΓํͰ͋Γ·ͤΜɻz 1 ʮΦϒδΣΫτࢦͷ։ൃ͏·͍͍ͬͯ͘Δͷ͔ʯ
ΣϒαʔϏεͷݱ lҰํɺੳઃܭΛ͋·ΓߦΘͳ͍ϓϩάϥϛϯάॏࢹͷ ։ൃελΠϧɺͪΐͬͱن͕େ͖͘ͳΔͱɺίʔυͷݟ ௨͕͠ٸʹѱԽ͠·͢ɻ ͞Βʹ͔࣍Β࣍ͱ૿վஙΛ܁Γฦ͍ͯ͠Δ͏ͪʹɺख͕ ͚ΒΕͳ͍΄Ͳཧղ͕͘͠ɺ͓͍ͦΕͱมߋ͕Ͱ͖ͳ͍େ ͖ͳίʔυͷ͔ͨ·Γ͕ੜΈग़͞Ε·͢ɻz 1 ʮͲͪΒͷΓํͰ͔͍ͬͳιϑτΣΞ͕ੜ·Ε͍͢ʯ
ΣϒαʔϏεͷݱ lҰํɺੳઃܭΛ͋·ΓߦΘͳ͍ϓϩάϥϛϯάॏࢹͷ ։ൃελΠϧɺͪΐͬͱن͕େ͖͘ͳΔͱɺίʔυͷݟ ௨͕͠ٸʹѱԽ͠·͢ɻ ͞Βʹ͔࣍Β࣍ͱ૿վஙΛ܁Γฦ͍ͯ͠Δ͏ͪʹɺख͕ ͚ΒΕͳ͍΄Ͳཧղ͕͘͠ɺ͓͍ͦΕͱมߋ͕Ͱ͖ͳ͍େ ͖ͳίʔυͷ͔ͨ·Γ͕ੜΈग़͞Ε·͢ɻz 1 ʮͲͪΒͷΓํͰ͔͍ͬͳιϑτΣΞ͕ੜ·Ε͍͢ʯ
͍ɺ͓ͬ͠ΌΔ௨ΓͰ͢ স
ݴ͍༁͍ͤͯͩ͘͞͞
TUBHFTPGCVTJOFTTHMPXUI TUBHFTPGCVTJOFTTHMPXUI &YJTUFODF 4VSWJWBM 4VDDFTT 5BLFP⒎ .BUVSJUZ
ΣϒαʔϏεͷݱ w εϐʔυʼ࣭ w ΞδϟΠϧ˺ߦ͖ͨΓͬͨΓ w গਫ਼Ӷˠߴ͍ଐਓੑ ˞ݸਓͷײͰ͢
ͦ͏͍͏ݱͰɺগ͠ͰʮΦϒ δΣΫτࢦΒ͍͠։ൃʯΛ͢Δ ʹͲ͏͢Ε͍͍ͩΖ͏͔ʁ
։ൃϓϩηεʗମ੍ lۀΛཧղ͠ཧ͢ΔͨΊͷʮੳʯͱɺιϑτΣ Ξͱͯ͠ͷ࣮ݱํ๏Λߟ͑ΔʮઃܭʯΛɺಉ͡ਓؒʗ νʔϜ͕Ұ؏ͯ͠୲͢Δ͜ͱ͕ޮՌతͰ͢ɻz 1 ʮυϝΠϯϞσϧΛத৺ʹͨ͠ιϑτΣΞ։ൃͷਐΊํʯ
lۀΛཧղ͠ཧ͢ΔͨΊͷʮੳʯͱɺιϑτΣ Ξͱͯ͠ͷ࣮ݱํ๏Λߟ͑ΔʮઃܭʯΛɺಉ͡ਓؒʗ νʔϜ͕Ұ؏ͯ͠୲͢Δ͜ͱ͕ޮՌతͰ͢ɻz 1 ʮυϝΠϯϞσϧΛத৺ʹͨ͠ιϑτΣΞ։ൃͷਐΊํʯ ։ൃϓϩηεʗମ੍ Ͱ͖ͦ͏
υΩϡϝϯςʔγϣϯ lੳ͢Δਓ͕ؒઃܭ͠ɺઃܭ༰Λιʔείʔυͱ ͯ͠ه͢ΔͷͰ͋Εɺੳऀͱઃܭऀɺઃܭ ऀͱ࣮ऀͷؒͰɺυΩϡϝϯτΛͬͯୡ͢Δඞ ཁ͋Γ·ͤΜɻʢதུʣੳͱઃܭ͕Ұக͢Εɺ ιʔείʔυ͕υΩϡϝϯτͱͯ͠ػೳ͠·͢ɻz 1 ʮιʔείʔυΛୈҰڃͷυΩϡϝϯτͱͯ͠׆༻͢Δʯ
lੳ͢Δਓ͕ؒઃܭ͠ɺઃܭ༰Λιʔείʔυͱ ͯ͠ه͢ΔͷͰ͋Εɺੳऀͱઃܭऀɺઃܭ ऀͱ࣮ऀͷؒͰɺυΩϡϝϯτΛͬͯୡ͢Δඞ ཁ͋Γ·ͤΜɻʢதུʣੳͱઃܭ͕Ұக͢Εɺ ιʔείʔυ͕υΩϡϝϯτͱͯ͠ػೳ͠·͢ɻz 1 ʮιʔείʔυΛୈҰڃͷυΩϡϝϯτͱͯ͠׆༻͢Δʯ υΩϡϝϯςʔγϣϯ Ͱ͖ͦ͏
ੳͱઃܭ lۀͷؔ৺ࣄΛώτʗϞϊʗίτͷͭʹྨ͢Δํ ๏͕͋Γ·͢ɻ͜ͷྨɺۀͷͱΒ͑ํͱͯ͠Θ ͔Γ͘͢ɺ·࣮ͨࡍʹʹཱͭ͜ͱ͕͘ೝΊΒΕ ͍ͯ·͢ɻz 1 ʮυϝΠϯΦϒδΣΫτͷݟ͚ͭํʯ
ੳͱઃܭ lۀͷؔ৺ࣄΛώτʗϞϊʗίτͷͭʹྨ͢Δํ ๏͕͋Γ·͢ɻ͜ͷྨɺۀͷͱΒ͑ํͱͯ͠Θ ͔Γ͘͢ɺ·࣮ͨࡍʹʹཱͭ͜ͱ͕͘ೝΊΒΕ ͍ͯ·͢ɻz 1 ʮυϝΠϯΦϒδΣΫτͷݟ͚ͭํʯ Ͱ͖ͦ͏
࣮ lυϝΠϯΦϒδΣΫτ͕)5.-ͷDMBTTଐੑͷΛ ฦ͢͜ͷΓํɺϞσϧʹϏϡʔͷؔ৺ࣄ͕ೖΓࠐ ΜͰ͍Δͱײ͡Δਓ͕͍Δ͔͠Ε·ͤΜɻ͔͠͠ɺ ͦ͏Ͱ͋Γ·ͤΜɻυϝΠϯΦϒδΣΫτͰදݱ͢ Δཧతͳঢ়ଶΛɺϏϡʔଆ͕ར༻͢Δɺͱ͍͏ߟ͑ ํͰ͢ɻz 1 ʮ)5.-ͷDMBTTଐੑΛυϝΠϯΦϒδΣΫτ͔Βग़ྗ͢Δʯ
࣮ lυϝΠϯΦϒδΣΫτ͕)5.-ͷDMBTTଐੑͷΛ ฦ͢͜ͷΓํɺϞσϧʹϏϡʔͷؔ৺ࣄ͕ೖΓࠐ ΜͰ͍Δͱײ͡Δਓ͕͍Δ͔͠Ε·ͤΜɻ͔͠͠ɺ ͦ͏Ͱ͋Γ·ͤΜɻυϝΠϯΦϒδΣΫτͰදݱ͢ Δཧతͳঢ়ଶΛɺϏϡʔଆ͕ར༻͢Δɺͱ͍͏ߟ͑ ํͰ͢ɻz 1 ʮ)5.-ͷDMBTTଐੑΛυϝΠϯΦϒδΣΫτ͔Βग़ྗ͢Δʯ Ͱ͖ͦ͏
ଞʹ ΦϒδΣΫτʗϑΝʔετΫϥείϨΫγϣϯʗ۠ΦϒδΣ ΫτʗυϝΠϯϞσϧʗํʢ1PMJDZʣύλʔϯʗϦϑΝΫλ ϦϯάʗϓϩάϥϜͷࣗݾจॻԽʗαʔϏεΫϥεʗγφϦΦ Ϋϥεʗίτʹ͢ΔσʔλϕʔεઃܭʗλεΫϕʔεͷϢʔ βʔΠϯλʔϑΣʔεʗը໘ͷؔ৺ࣄͱҰகͤͨ͞Ϋϥεʗඇ ಉظϝοηʔδϯάʗ"1*Ϩεϙϯε༻ͷΫϥεʗϚΠΫϩαʔ ϏεʗϗϫΠτϘʔυʹॻ͍ͨϥϑεέονͷࣸਅʗۀཁ݅ Λͦͷ··ιʔείʔυͰදݱͰ͖ΔਓࡐΛɺެࣜʹඇެ ࣜʹධՁ͢Δ͜ͱ
ଞʹ ΦϒδΣΫτʗϑΝʔετΫϥείϨΫγϣϯʗ۠ΦϒδΣ ΫτʗυϝΠϯϞσϧʗํʢ1PMJDZʣύλʔϯʗϦϑΝΫλ ϦϯάʗϓϩάϥϜͷࣗݾจॻԽʗαʔϏεΫϥεʗγφϦΦ Ϋϥεʗίτʹ͢ΔσʔλϕʔεઃܭʗλεΫϕʔεͷϢʔ βʔΠϯλʔϑΣʔεʗը໘ͷؔ৺ࣄͱҰகͤͨ͞Ϋϥεʗඇ ಉظϝοηʔδϯάʗ"1*Ϩεϙϯε༻ͷΫϥεʗϚΠΫϩαʔ ϏεʗϗϫΠτϘʔυʹॻ͍ͨϥϑεέονͷࣸਅʗۀཁ݅ Λͦͷ··ιʔείʔυͰදݱͰ͖ΔਓࡐΛɺެࣜʹඇެ ࣜʹධՁ͢Δ͜ͱ
Ͱ͖ͦ͏
None
ΣϒαʔϏεͷݱ w εϐʔυʼ࣭ w ΞδϟΠϧ˺ߦ͖ͨΓͬͨΓ w গਫ਼Ӷˠߴ͍ଐਓੑ ˞ݸਓͷײͰ͢
ΣϒαʔϏεͷݱ w εϐʔυʼ࣭ ˠશһੳʗઃܭͰ͖ΔΑ͏ʹ͍ͯ͘͠ ˠ࣭Λ্͛Δ͜ͱͰεϐʔυΛ্͍͛ͯ͘ ˠྫʣϦϑΝΫλϦϯάσʔɺࣾษڧձɺখ͞ ͳ1VMM3FRVFTUɺίʔυϨϏϡʔɺFUD
ΣϒαʔϏεͷݱ w ΞδϟΠϧ˺ߦ͖ͨΓͬͨΓ ˠΤϯδχΞओಋͰੳʗઃܭʗ࣮αΠΫϧΛ ճ͍ͯͨ͘͠Ίʹɺ#J[Λר͖ࠐΉɺ6*69ɺϚʔ έςΟϯάྖҬ৯͍ࠐΉ ˠܭըత͔ͭૉૣ͘։ൃ͢Δ ˠྫʣϓϩτλΠϐϯάπʔϧɺνϟοτπʔϧɺ ใڞ༗πʔϧɺΧϯόϯϘʔυɺ(PPHMF "OBMZUJDTɺFUD
ΣϒαʔϏεͷݱ w গਫ਼Ӷˠߴ͍ଐਓੑ ˠਨʢػೳʣׂͰ୲Λ͚ͣʹɺͳΔ͘ ·ΜΜͳ͘ίʔυશମΛ৮ΔΑ͏ʹ͢Δ ˠφϨοδͷฏ४Խ ˠྫʣ੩తղੳπʔϧɺϦϑΝΫλϦϯάσʔɺ ࣾษڧձɺϖΞϓϩάϥϛϯά ɺίʔυϨϏϡʔɺ ίʔυεχϖοτͷγΣΞɺใڞ༗πʔϧɺFUD
ݱͰऔΓೖΕΒΕͦ͏ͳ͜ͱΛ ͻͱͭͰଟ͘ຊॻ͔ΒϐοΫΞο ϓͯ͠ɺ׆༻͍͖͍ͯͨ͠Ͱ͢ɻ
Έͳ͞ΜͷݱͰ͍ͭ͘औΓ ೖΕΒΕͦ͏Ͱ͠ΐ͏͔ʁ
ݱ͔ΒҕৡͰ͢ɻ