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
Laravel+Layerd+TDD
Search
gozaing
February 01, 2018
Programming
0
2.4k
Laravel+Layerd+TDD
Laravelでレイヤードアーキテクチャを利用した実装サンプルです。
ソース:
https://github.com/gozaing/reminder
gozaing
February 01, 2018
Tweet
Share
More Decks by gozaing
See All by gozaing
What I want to tell those who will become engineer managers from now on
tobaru
1
1.2k
ListeningTemplate
tobaru
0
81
coachable
tobaru
0
160
self-introduce
tobaru
0
130
Experiment with self-change
tobaru
3
120
201904_scrum_seven_things
tobaru
0
980
スクラムとは。見積もりとは。
tobaru
0
900
Other Decks in Programming
See All in Programming
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
990
ライブ配信サービスの インフラのジレンマ -マルチクラウドに至ったワケ-
mirrativ
1
250
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
110
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
140
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.7k
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
380
ワープロって実は計算機で
pepepper
2
1.4k
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
230
TanStack DB ~状態管理の新しい考え方~
bmthd
2
180
Constant integer division faster than compiler-generated code
herumi
2
670
実践 Dev Containers × Claude Code
touyu
1
220
フロントエンドのmonorepo化と責務分離のリアーキテクト
kajitack
2
130
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How GitHub (no longer) Works
holman
314
140k
Docker and Python
trallard
45
3.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Fireside Chat
paigeccino
39
3.6k
Designing Experiences People Love
moore
142
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Making Projects Easy
brettharned
117
6.3k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Transcript
-BSBWFMΛͬͨ ϨΠϠʔυΞʔΩςΫνϟ 5%% αʔόαΠυΤϯδχΞ ϑϧʔπύʔϥʔ!גࣜձࣾΫΠοΫ
͓ͷରͱ͍ͯ͠Δํ w 'BU$POUSPMMFS'BU.PEFMΛճආ͍ͨ͠ʢͷʣ w %%%Λ࢝Ί͍͕ͨͲ͔͜Βʁͱࢥ͍ͬͯΔ w .7$Ͱͳ͍ΞʔΩςΫνϟͰ࣮͍ͨ͠ w ςετ͍͢͠ίʔυͱʁͱߟ͍͑ͯΔ w
-BSBWFMʢ1)1ʣΛར༻͍ͯ͠Δʢ࣮αϯϓϧͰར༻ʣ
͓͢Δࣄ w ʢલʣຊεϥΠυͰ͢ w ϨΠϠʔυΞʔΩςΫνϟ w ࡞͢ΔΞϓϦέʔγϣϯͷઆ໌ w $POUSPMMFSͱ4FSWJDFΫϥε w
$POUSPMMFSΫϥεͷςετʢͷ͢͠͞ʣ w ʢޙʣιʔεΛ$MPOF֬͠͝ೝ͍ͩ͘͞ w 4FSWJDFΫϥεͱ3FQPTJUPSZΫϥε w 4FSWJDFΫϥεͱ3FQPTJUPSZΫϥεͷςετʢͷ͢͠͞ʣ
ޙΛͨͣʹશମΛݟ͍ͨํίνϥ w (JU)VC w IUUQTHJUIVCDPNHP[BJOHSFNJOEFS w ϝʔϧૹ৴ॲཧ࣮͞Ε͍ͯ·ͤΜ w मਖ਼ɺ࣮ͳͲࣗ͝༝ʹ͓ࢼ͠Լ͍͞ w
13Λ͓͓ͪͯ͠Γ·͢
࡞͢ΔΞϓϦέʔγϣϯͷཁ݅ʢ3FNJOEFS"QQʣ w ϝϯόʔਓ͕ࢀՃ͢Δ൪੍Πϕϯτ w కΊΓ·ͰͷΛදࣔ w ରऀʹϝοηʔδʢ˓લʣΛදࣔ w ରऀʹϦϚΠϯυϝʔϧʢ˓લʣૹ৴ "͞Μ
#͞Μ $͞Μ Γ Γ Γ
ΞʔΩςΫνϟͷઆ໌
༻͢ΔΞʔΩςΫνϟ w ϨΠϠʔυΞʔΩςΫνϟ w ্ҐԼҐʹґଘ͍͚ͯ͠ͳ͍ w ԼҐͷมԽʹΑ্ͬͯҐʹมߋ͕͋Δࣄڐ͞ͳ͍ w ϏδωεϩδοΫΛ%PNBJOͰٵऩ w
.7$ύλʔϯͰ͍͏$POUSPMMFS.PEFMʹϏδωεϩδοΫ͕ ᷓΕΔࣄΛ͙ʢ.7$Ͱ.PEFM͕ؤுΓ͗͢Δنͷ߹ʣ w ॲཧΛϨΠϠʔԽ͢ΔࣄͰΛ͠ςετ͍͢͠
.7$ͱϨΠϠʔυΞʔΩςΫνϟͷҧ͍ .7$ ϨΠϠʔυ $MBTT 7JFX 6* $POUSPMMFS "QQMJDBUJPO .PEFM %PNBJO
4FSWJDF %PNBJO.PEFM 7BMVF0CKFDU *OGSBTUSVDUVSF 3FQPTJUPSZ .7$Ͱ$POUSPMMFS.PEFM͕ؤுΓ͗͢Δࣄ͕ଟ͍
֤ϨΠϠʔͷׂ w ʢ%PNBJOʣ4FSWJDFΫϥε w ϏδωεϩδοΫͷ࣮ʢϧʔϧ༷Λຬͨ͢ʣ w ʢ%PNBJOʣ%PNBJO.PEFMΫϥε w υϝΠϯݻ༗ͷৼΔ͍ w
υϝΠϯݻ༗ͷΫϥε࣮ʢ7BMVF0CKFDUʣ w ʢ*OGSBTUSVDUVSFʣ3FQPTJUPSZΫϥε w ӬଓԽͷΞΫηεΛ࣮ʢσʔλιʔεɺϑΝΠϧʣ
ґଘΠϝʔδʢґଘؔٯసͷ๏ଇʣ 7JFX6* $POUSPMMFS"QQMJDBUJPO %PNBJO4FSWJDF 3FQPTJUPSZ *OUFSGBDF *OUFSGBDF
ґଘ্͕ҐϨΠϠʔ͔ΒԼҐϨΠϠʔʹ͘ͱʁ w 3FNJOEFS"QQͰɺࢀՃऀҰཡΛ$POpH͔Βऔಘ͍ͯ͠Δ w %#͔Βऔಘ͢ΔΑ͏ʹมߋ͍ͨ͠߹Ͳ͏Өڹ͢Δ͔ w ςετͷ߹͚ͩ$POpH42-JUFΛར༻͍ͨ͠߹Ͳ͏Өڹ ͢Δ͔ʢ݅ذͰରॲͯ͠͠·͍͕ͪʣ w ্هέʔεͰ্Ґͷมߋ͕ඞཁͱͳΔ
w ӨڹΛগͳ͘͢ΔͨΊ֤ϨΠϠʔΛૄ݁߹ʹ͢Δࣄ͕ॏཁ w ૄ݁߹ʹ͢ΔΈͱͯ͠ϨΠϠʔυΞʔΩςΫνϟΛར༻͢Δ
࣮ͱղઆ
ඞཁͳཁ͔݅Β࣮Λ࢝ΊΔ w ࢀՃऀҰཡΛऔಘ w ࢀՃऀҰཡ͔ΒకΛऔಘ w ࠓకΛߦ͍ɺΓΛࢉग़ w ΓΛ7JFXͰදࣔ ͜͏͍͏ॲཧ͕ඞཁͦ͏ͳͷͰ
$POUSPMMFSʹॻ͍͍ͯ͘
͋ͬͱ͍͏ؒʹ'BU$POUSPMMFS w ߇͑Ίʹॻ͍ͯ͜͏͍͏ϩδοΫʹͳΔ
ςετ͔͚Δ͕ w JOEFY ॲཧͷதͰ"#$ͱϩδοΫ͕ଓ͖ɺͲ͔͜Ͱࣦഊͨ͠߹ ͷέʔεΛఆ͢Δࣄ͕͍͠ w ԿΛͬͯਖ਼ৗऴྃͱ͢Δ͔ w ֤ॲཧΛׂ࣮ͯ͢͠ΔࣄͰέʔεఆΛগͳ͘͢Δࣄग़དྷΔ͕ τϥϯβΫγϣϯεΫϦϓτʹͳΓ͍͢
w Ͳ͜Ͱׂ࣮ͯ͢͠Δ͔ w $POUSPMMFS4UBUVT͕Λฦ͠ɺࢀՃऀҰཡ͕7JFXʹ͞ΕΔࣄͷ ΈΛ͓͍͍͑ʢࠓ͕ଟ͍'BUʣ w Ͳ͏ΛΓ͔͢ʁ w औಘɺՃ͕ͯ͢ಉ͡ॲཧͷதͰߦΘΕ͍ͯΔ
Ͳ͏࣮͢Δ͔ w 4FSWJDFΫϥεͰϩδοΫΛ࣮ w $POUSPMMFSͲͷΑ͏ͳॲཧͰࢀՃऀҰཡ͕ੜ͞ΕΔ͔Δඞཁ͕ͳ͍ w ੜ͞ΕͨࢀՃऀҰཡʹΓϝοηʔδؚ͕·Ε͍ͯΔ w UIJTTFSWJDFHFU"SSBZ-JTU ΛݺͿͷΈ
ίϯετϥΫλͰλΠϓώϯτ͞Ε͍ͯΔ͕ʁ w 4FSWJDFΫϥεͷ*OUFSGBDFΛλΠϓώϯτ w ৄࡉͷ࣮Λߦ͏4FSWJDFΫϥεɺ$POUSPMMFSʹλΠϓώϯτ͠ ͨ*OUFSGBDFʹґଘʢԼҐϨΠϠʔ্ҐϨΠϠʔͷநʹґଘʣ w JOEFYϝιουͷதͰɺ4FSWJDFΫϥεͷϝιουΛݺͿͷΈ w $POUSPMMFSʹॻ͖͕ͪͳۀϩδοΫΛ4FSWJDFΫϥεʹ
w $POUSPMMFSΛγϯϓϧʹอͭ
ΠϯλʔϑΣʔεͱ۩ΫϥεΛͲ͜Ͱඥ͚Δʁ w 4FSWJDF1SPWJEFSΛར༻ w ͜ͷొʹΑΓ$POUSPMMFSͰ۩Ϋϥε͕ੜ͞ΕΔʢ%*ίϯςφʣ w 1BSUJDJQBOU4FSWJDF*OUFSGBDF1BSUJDJQBOU4FSWJDF͕ੜ͞ΕΔ
͍ͯ͘͠͠ͳ͍͔ʁ w 4FSWJDFΫϥεɺ4FSWJDF1SPWJEFSɺ*OUFSGBDFͷར༻ʹΑΓొΫ ϥε૿͑Δʢίʔυͷهड़ྔ૿͑Δʣ w ϩδοΫΛڬ·ͳ͍$36%ΞϓϦέʔγϣϯʢϚελཧͷΑ͏ ͳʣͰ͋Εɺͷෆཁ͔͠Εͳ͍ w ϑΥʔΧεΛߜΓΛ͢Δࣄ͕త w
मਖ਼Օॴ͕໌֬ɺมߋͷӨڹΛड͚ʹ͍͘
࣮͕நʹґଘ͢ΔࣄʹΑΔϝϦοτ w 6OJU5FTU࣌4UVC4FSWJDFΫϥεʹࠩ͠ସ͑ͯςετ͢Δࣄ͕ग़དྷΔ 4UVC$MBTTʹࠩ͠ସ͑ ςετ࣌͜ͷϝιου͕ݺΕΔ
·ͱΊ w ϨΠϠʔʹΑׂ͕ͬͯ͋ΔʢϨΠϠʔυΞʔΩςΫνϟʣ w ׂΛ͚ΔࣄͰγϯϓϧ͞Λอͭ w ϑΥʔΧεΛߜΔࣄͰςετʹΑΔ୲อΛߦ͍͍͢ w ґଘؔΛཧղ͢Δ w
্ҐԼҐʹґଘ͍͚ͯ͠ͳ͍ w நʹґଘ͢ΔࣄͷϝϦοτΛཧղ w ςετ࣌ʹ4UVCͱࠩ͠ସ͑ʢଞʹߟ͑ΒΕΔ͕ࠓճ͜ ͷͷΈݴٴʣ
ࠓճ͓ͨ͠ൣғ 7JFX6* $POUSPMMFS"QQMJDBUJPO %PNBJO4FSWJDF 3FQPTJUPSZ *OUFSGBDF *OUFSGBDF ຊεϥΠυͰ"QQMJDBUJPO 4FSWJDFͷ͕͠ओͰ͢ 4FSWJDF3FQPTJUPSZಉ
༷ʹநʹґଘͨ͠Έͱ ͳΓ·͢ ͝ڵຯ͋ΕιʔεΛ͝ ཡ͍ͩ͘͞
8F"SF)JSJOH IUUQTKQSFDSVJUNJENBSLFU