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.7k
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
220
Design It! in a nutshell
nunulk
1
190
PHP Getting Faster
nunulk
0
180
How does learning English broaden your world?
nunulk
0
270
Testing on Laravel
nunulk
1
1.2k
Vue.js + TypeScript + Firebase
nunulk
0
860
Nuxt.js in TypeScript
nunulk
1
290
A startup meets Laravel + Vue.js
nunulk
1
1.7k
Unit Testing Laravel
nunulk
0
370
Other Decks in Programming
See All in Programming
Git Lint
bkuhlmann
4
750
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
490
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
210
Java 22 Overview
kishida
1
180
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
380
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
430
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
43
19k
Fast JSX: Don't clone props object #28768
yossydev
1
120
見た目から始める生産性向上
ikumatadokoro
7
850
Rethinking UI building strategies @ SFI 2024
letelete
0
270
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
110
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Fireside Chat
paigeccino
21
2.6k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Unsuck your backbone
ammeep
663
57k
The Invisible Customer
myddelton
114
12k
RailsConf 2023
tenderlove
4
540
The Art of Programming - Codeland 2020
erikaheidi
42
12k
Ruby is Unlike a Banana
tanoku
96
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
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
ݱͰऔΓೖΕΒΕͦ͏ͳ͜ͱΛ ͻͱͭͰଟ͘ຊॻ͔ΒϐοΫΞο ϓͯ͠ɺ׆༻͍͖͍ͯͨ͠Ͱ͢ɻ
Έͳ͞ΜͷݱͰ͍ͭ͘औΓ ೖΕΒΕͦ͏Ͱ͠ΐ͏͔ʁ
ݱ͔ΒҕৡͰ͢ɻ