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
83
coachable
tobaru
0
160
self-introduce
tobaru
0
130
Experiment with self-change
tobaru
3
120
201904_scrum_seven_things
tobaru
0
990
スクラムとは。見積もりとは。
tobaru
0
920
Other Decks in Programming
See All in Programming
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
4
18k
AI駆動開発カンファレンスAutumn2025 _AI駆動開発にはAI駆動品質保証
autifyhq
0
120
スキーマ駆動で、Zod OpenAPI Honoによる、API開発するために、Hono Takibiというライブラリを作っている
nakita628
0
340
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
13
2.7k
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
130
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
1.3k
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
240
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
6k
Vue 3.6 時代のリアクティビティ最前線 〜Vapor/alien-signals の実践とパフォーマンス最適化〜
hiranuma
2
370
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
120
Webサーバーサイド言語としてのRustについて
kouyuume
1
5.1k
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
250
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
We Have a Design System, Now What?
morganepeng
54
7.9k
Designing for Performance
lara
610
69k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Optimizing for Happiness
mojombo
379
70k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Into the Great Unknown - MozCon
thekraken
40
2.1k
For a Future-Friendly Web
brad_frost
180
10k
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