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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nunulk
August 30, 2017
Programming
3
2.9k
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
330
Design It! in a nutshell
nunulk
1
270
PHP Getting Faster
nunulk
0
280
How does learning English broaden your world?
nunulk
0
380
Testing on Laravel
nunulk
1
1.5k
Vue.js + TypeScript + Firebase
nunulk
0
960
Nuxt.js in TypeScript
nunulk
1
440
A startup meets Laravel + Vue.js
nunulk
1
2k
Unit Testing Laravel
nunulk
0
500
Other Decks in Programming
See All in Programming
オブザーバビリティ駆動開発って実際どうなの?
yohfee
2
550
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
440
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
610
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
2.7k
並行開発のためのコードレビュー
miyukiw
2
2k
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
140
今から始めるClaude Code超入門
448jp
8
9.5k
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
22
8k
Rubyと楽しいをつくる / Creating joy with Ruby
chobishiba
0
200
Python’s True Superpower
hynek
0
190
15年目のiOSアプリを1から作り直す技術
teakun
0
510
CSC307 Lecture 08
javiergs
PRO
0
690
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
340
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
Why Our Code Smells
bkeepers
PRO
340
58k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
460
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
300
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
HDC tutorial
michielstock
1
460
How to train your dragon (web standard)
notwaldorf
97
6.5k
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
ݱͰऔΓೖΕΒΕͦ͏ͳ͜ͱΛ ͻͱͭͰଟ͘ຊॻ͔ΒϐοΫΞο ϓͯ͠ɺ׆༻͍͖͍ͯͨ͠Ͱ͢ɻ
Έͳ͞ΜͷݱͰ͍ͭ͘औΓ ೖΕΒΕͦ͏Ͱ͠ΐ͏͔ʁ
ݱ͔ΒҕৡͰ͢ɻ