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 + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発
Search
Takayuki
PRO
June 25, 2019
Programming
2.6k
3
Share
Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発
Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発
Takayuki
PRO
June 25, 2019
More Decks by Takayuki
See All by Takayuki
Build an MCP Server in Laravel to Enable “AI-Operated” Recruiting Tools(English)
bumptakayuki
PRO
0
29
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
PRO
1
120
Laravel × Clean Architecture
bumptakayuki
PRO
1
540
エンジニアのキャリア論
bumptakayuki
PRO
1
290
地方カンファレンス主催のススメ
bumptakayuki
PRO
1
260
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
PRO
2
1.3k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
PRO
0
790
沖縄観光、名物を一挙紹介!
bumptakayuki
PRO
2
780
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
PRO
1
3.4k
Other Decks in Programming
See All in Programming
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
3.2k
Inspired By RubyKaigi (EN)
atzzcokek
0
500
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
340
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
680
CSC307 Lecture 17
javiergs
PRO
0
310
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.1k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
170
inferと仲良くなる10分間
ryokatsuse
1
350
Claspは野良GASの夢をみるか
takter00
0
160
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
330
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.2k
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
230
A designer walks into a library…
pauljervisheath
211
24k
Utilizing Notion as your number one productivity tool
mfonobong
4
310
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
WCS-LA-2024
lcolladotor
0
610
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Transcript
Laravel + Nuxt.js + FirebaseでDXͱ ։ൃίετΛҙࣝͨ͠SPA։ൃ Laravel + Nuxt.js +
FirebaseでDXͱ ։ൃίετΛҙࣝͨ͠SPA։ൃ
2 ٕज़બఆʹ͍ͭͯ Agenda 3 νʔϜϏϧσΟϯάʹ͍ͭͯ 1 ࣗݾհ
1 ࣗݾհ
Copyright Re:Build.inc All Rights Reserved. ◆໊લ ླ ೭(Suzuki Takayuki) ※ಉಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ
◆ࣗݾհ ɾ1990ɺਆಸݝੜ·Εɻ ɾࣾձਓʹͳ͔ͬͯΒɺϓϩάϥϛϯάΛ࢝ΊΔɻ ɾ2015ʹϑϧεϐʔυʹೖࣾ͠ɺ2017ʹಠཱɻ ɾϑϦʔϥϯεͰϦϞʔτϫʔΫΛͬͨޙʹԭೄͰىۀ ◆झຯ ίεϓϨɺԻָϥΠϒɺϚϥιϯେձʹग़Δɺٿ؍ઓ ◆εΩϧ ɾPHP, Symfony2,CakePHP3,Laravel6 ɾJavaScript, backbone.js,Angular4,Vue.js,Nuxt.js BDD(Ϗʔνۦಈ։ൃ) 1.ࣗݾհ
Copyright Re:Build.inc All Rights Reserved. ԭೄͰ 150ਓنͷΤϯδχΞ͚ษڧձΛओ࠵ h&ps:/ /phpcon.okinawa.jp/ ҰؾʹΤϯδχΞͱͷܨ͕ΓΛ֦େͤ͞Δʂ
PHPΧϯϑΝϨϯεɺPHPΤϯδχΞʹΑΔ࠷େ نͷٕज़ऀΠϕϯτͱͯ͠ɺ౦ژɺؔɺԬɺ ւಓͰ։࠵͞Ε͖ͯ·ͨ͠ɻ 1.ࣗݾհ
Copyright Re:Build.inc All Rights Reserved. ࣗݾհ 1
Copyright Re:Build.inc All Rights Reserved. ࣗݾհ 1
Copyright Re:Build.inc All Rights Reserved. 1.ձࣾհ ◆ձ໊ࣾ גࣜձࣾRe:Build ◆ॅॴ ԭೄݝԭೄࢢதԝ̍ஸ̍̒−̕
◆ࣄۀ༰ ɾࣗࣾWEBαʔϏεͷاըɾ։ൃɻ ɾडୗ։ൃ ◆ࣾһ 7໊ ◆ΤϯδχΞͷಇ͖ํ ϦϞʔτϫʔΫՄೳͳࣗ༝ͳಇ͖ํΛਪͯ͠·͢ʂ
9 ࣗࣾWebαʔϏεͷ։ൃ ɾαʔϏε໊ Tadoru ɾγεςϜ֓ཁ ΤϯδχΞಛԽܕͷ ϦϑΝϥϧ Ϋϥυιʔγϯά ɾ͍ͬͯΔٕज़ ݴޠ
: PHP,JavaScript ϑϨʔϜϫʔΫ: laravel5,Nuxt.jsͳͲ
2 ٕज़બఆʹ͍ͭͯ
11 ࣌ͷ։ൃϝϯόʔͷεΩϧηοτ SPAͷWebΞϓϦܦݧ ऀ Ұਓ αʔόαΠυ(Laravel) ಘҙͳਓ͕ଟ͍ Vue.js(MPA)৮ͬͨ͜ͱ ͋Δϝϯόʔ͕ଟ͍ 20લʙ20ޙͰ
։ൃܦݧগ͠ઙ͍
1 2 ։ൃεέδϡʔϧ 201812݄ʙ 20193݄ 20194݄ʙ6݄ ։ൃ։࢝ Ϋϩʔζυβ൛ ࠷ݶͷ։ൃج൫ɺυ Ωϡϝϯτɺ։ൃମ੍
Λඋͯ͠ɺ͕ͬͭΓ ։ൃΛਐΊΔ ଟগɺόά͕͋ͬͯ ྑ͍ͷͰɺશମతʹ࠷ ݶͷॳظͷػೳ͕Ϧ Ϧʔε͞Ε͍ͯΔঢ়ଶ Λࢦ͢ɻ γʔυϥϯυͷࢿۚ ௐୡ༧ఆ ॳظͷػೳ͕ϦϦʔε ͞Ε͓ͯΓɺ͋Δఔɺ Ϣʔβͷొ֬อ͞ Ε͍ͯΔঢ়ଶΛࢦ͢
1 3 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍ ࠓޙɺࢢͱͯ͠͞Ε ͦ͏ͳٕज़ ݕࡧͨ͠Β͋Δఔɺωοτʹ υΩϡϝϯτ͕͋Δ ԭೄͰઑ͍ͬͯΔٕज़ ։ൃίετ͕ߴ͗ͣ͢ɺఔ Α͘ઓ͍ͨ͠
1 4 DXͱʁ Developer Experience ʢ։ൃମݧʣͱɺ͋Δγ εςϜΛʮؾ࣋ͪΑ͘։ൃɾอकͰ͖Δ͔Ͳ͏͔ʯ Λࣔ͢ͷ ։ൃऀ։ൃɾอकͱ͍͏ߦҝΛ௨ͨͦ͡ͷγε ςϜͷϢʔβʔͰ͋ΓɺDXUXͷҰछͰ͋Δ
https://gfx.hatenablog.com/entry/2018/06/28/100103
Copyright Re:Build.inc All Rights Reserved. ؾ࣋ͪͷ༨༟͕ͰΔͱίʔ υͷ࣭͕͕͋Γอक࣌ ͷσάϨݮΒͤΔ ʑͷ։ൃΛָ͠ΊΔΑ ͏ʹͳΓɺؾ࣋ͪʹ༨༟
͕Ͱ͖Δɻ DX͕ྑ͍ࣄࣗମ͕DXΛߴ ΊΔಈػʹͳΓɺਖ਼ͷεύ ΠϥϧΛݟࠐΊΔɻ 1 2 3 https://gfx.hatenablog.com/entry/2018/06/28/100103 DX͕ߴ͘ͳΔͱԿ͕ྑ͍ͷ͔ʁ
1 6 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍(ओ؍) ࢢՁ͕ߴ͍ ΤϯδχΞͷଟ͍ ΤϯδχΞͷগͳ͍ ࢢՁ͕͍ ͜͜Λૂ͏ʂ ༏लͳਓࡐΛ ࠾༻͍͢͠
1 7 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍(ओ؍) ࢢՁ͕ߴ͍ ΤϯδχΞͷଟ͍ ΤϯδχΞͷগͳ͍ ࢢՁ͕͍
1 8 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍ Laravelࠓޙਓؾଓ͖ͦ͏
1 9 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍ ͏ʔΜɺΘ͔Βͳ͍ɻɻɻ
2 0 ΤϯδχΞ࠾༻Ͱͷٕज़બఆ؍ ౦ژͷNuxt MeetupʹࢀՃͯ͠ࢀՃऀͷԠݟͯΈΔࣄʹͨ͠ʂ 2018/10/18 ࢀՃ100ਓʹରͯ͠ɺ Ԡื͕161ਓ͍Δʂʂ
2 1 ͷ༷ࢠ https://techblog.scouter.co.jp/entry/2018/10/19/153000 ը૾SCOUTER։ൃऀϒϩάΑΓҾ༻͖ͤͯ͞·ͨ͠ɻ ੌ͍ؾʂʂ
2 2 ࢀՃऀͷ ͍͍͚ͨͲɺ·ͩ౦ژͷ ձࣾͰͳ͔ͳ͔ɺಋೖ͠ ͍ͯΔاۀগͳ͍ ϓϥΠϕʔτͰษڧͯ͠ ͍Δਓ͕ଟ͍ Nuxtͷٻਓࣗମ૿͖͑ͯ ͍ͯΔҹ
2 3 બఆٕͨ͠ज़ ▪ٕज़ཁ݅ ɾαʔόαΠυ PHP(Laravel6) ɾϑϩϯτΤϯυ JavaScript(Vue.js,Nuxt.js) ɾςετ PHPUnit,Cypress
ɾ੩తղੳ ESlint,PHPStan ɾΠϯϑϥ AWS(EC2,S3,RDS(mariadb)) ɾ։ൃڥ php7,nginx,mariadb,docker,webpack ɾͦͷଞ gitlab,gitlabCI(ࣗಈσϓϩΠͳ Ͳ),Slack,phpStorm
ϑϩϯτΤϯυ αʔόαΠυ શମߏ Gitlab CI ςετɾLintͳͲ Firebase ςετɾLintͳͲ
શମͷΞʔΩςΫνϟ(̐ͭͷυϝΠϯผ) ϑϩϯτΤϯυ αʔόαΠυ blade MPAߏ ϑϩϯτΤϯυ αʔόαΠυ SPAߏ αʔόαΠυ ϑϩϯτΤϯυ
αʔόαΠυ blade MPAߏ ϫʔΧʔը໘ ΤʔδΣϯτը໘ اۀը໘ SPAߏ ϑϩϯτΤϯυ ӡӦը໘ MPA SPA
(1)PUSH (2)GitlabCI࣮ߦ (3)ίϯςφىಈ Gitlab (6)Envoy࣮ߦ ςετ࣮ߦ ίϯςφ σϓϩΠ࣮ߦ ίϯςφ (5)ίϯςφىಈ
(4)UnitTest࣮ߦ (7)Pull εςʔδϯάڥ ϦϙδτϦ Gitlab CI
3 νʔϜϏϧσΟϯάʹ͍ͭͯ
2 8 TwitterͰืूͯ͠ΈΔ Γ߹͍ͷΤϯδχΞ͞Μ 5ਓ͘Β͍͔Β࿈བྷ͕͖ͨʂ
2 9 ։ൃνʔϜߏ Suzuki Takayuki ਖ਼ࣾһ (ि5ۈ) Kakazu Yuki (ਖ਼ࣾһ)
Ϛωδϝϯτ&։ൃ ։ൃ ϑϦʔϥϯε (ि2ۈ) ϑϦʔϥϯε (ि2ۈ) ϑϦʔϥϯε (ि2ۈ) ϑϦʔϥϯε (ि1ۈ) ཁ݅ఆٛ UI/UX ਖ਼ࣾһ (ि5ۈ) ෭ۀ (ि1ۈ)
LaravelΛख़͓ͯ͠Γɺ ਂ͍͕ࣝ͋Δ εΫϥϜϚελʔͷ ܦݧ͕͋Δ ϑϩϯτΤϯυ (Nuxt.jsɺVue.js)͕ಘҙ 3 0 ϑϦʔϥϯεͷํͷεΩϧηοτ
3 1 ϑϦʔϥϯεͷํʹґཔ͢Δࣄ ϑϩϯτΤϯυ(Nuxt.js)ͷ։ൃ ৽͍ٕ͠ज़ͷબʹ ͋ͨͬͯͷ૬ஊ (FirebaseCypressͳͲ) શମͷΞʔΩςΫνϟͷ૬ஊ εΫϥϜͷճ͠ํͷ૬ஊ
3 2 ϦϞʔτϫʔΫͷ׆༻ ౦ژ ٶ࡚ ԭೄ ීஈ͔ΒϦϞʔτϫʔΫΛಋೖ ͍ͯ͠ΔࣄʹΑͬͯɺ ݝ֎ͷํʹࣄΛґཔͰ͖Δ
3 3 ใͷ׆༻
3 4 εΫϥϜ։ൃ ݄ Ր ਫ ۚ Sprint
ϙʔΧʔϓϥϯ χϯά/։ൃ σΠϦʔεΫϥ Ϝ/։ൃ σΠϦʔεΫϥ Ϝ/։ൃ σΠϦʔεΫϥ Ϝ/։ൃ εϓϦϯτϨϏ ϡʔ/ ϦϦʔε εϓϦϯτϓϥ ϯχϯά
3 5 εΫϥϜ։ൃ
3 6 ·ͱΊ ɾٕज़બఆษڧձʹࢀՃͯ͠ɺ࣮ࡍͷԹײݟΔ ɾٕज़తʹকདྷੑ͕͋Γͦ͏ͳͷΛબఆ ɾϦϞʔτϫʔΫͷ׆༻Ͱ࠾༻ൣғશࠃʹ͛ΒΕΔ
3 7 ࠂ 2020 PHPΧϯϑΝϨϯεԭೄ։࠵͠·͢ʂ
3 8 ࠂ 2020 2݄͝ΖʹͰLaravelϛʔτΞοϓΛΓ·͢ʂ