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
クリーンアーキテクチャとアトミックデザインをやってみた話
Search
a.shimomura
December 07, 2019
Programming
0
400
クリーンアーキテクチャとアトミックデザインをやってみた話
a.shimomura
December 07, 2019
Tweet
Share
More Decks by a.shimomura
See All by a.shimomura
serverless
shimomura
1
140
機械翻訳との付き合い方
shimomura
0
180
Other Decks in Programming
See All in Programming
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
200
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
160
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
250
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
22
15k
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
150
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
170
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
100
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
Folding Cheat Sheet #1
philipschwarz
PRO
0
210
Code Reviews
bkuhlmann
4
860
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
300
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
304
41k
Fireside Chat
paigeccino
19
2.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Building Adaptive Systems
keathley
29
1.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.5k
Become a Pro
speakerdeck
PRO
9
4.5k
Designing with Data
zakiwarfel
95
4.8k
Building Effective Engineering Teams - LeadDev
addyosmani
26
1.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
It's Worth the Effort
3n
180
27k
Transcript
ϦϦʔε·ͳ͍PJΛ ΫϦʔϯΞʔΩςΫνϟͱ ΞτϛοΫσβΠϯͰϦϑΝΫλͨ͠ ૼଜ ݠୋ
ࣗݾհ • twitter : @akshimo • php, ruby, java, vue.js,
aws, alibaba cloud… • ͨ·ʹ৽ਓݚमߨࢣͱ͔ͬͨΓ • webͰԿͰɻflutter͡Ί͍ͨɻ • ͖ͳ͓ञɿΞϒαϯ
࠷ॳʹ͓ͼ ෩࿊ෑ͛ա͗ͨͷͰૣʹ͍͖·͢ɻ ͠ڵຯ͋Εੋඇ͋ͱͰฉ͍ͯͩ͘͞ ͍ɻ
agenda • ΫϦʔϯΞʔΩςΫνϟɺΞτϛοΫσβΠϯ ͱ • ͳΜͰಋೖͯ͠Έͨͷʁ • ͲΜͳײ͡Ͱಋೖͨ͠ͷʁ • ಋೖͯ͠ΈͯͲΜͳײ͡ʁ
agenda • ΫϦʔϯΞʔΩςΫνϟɺΞτϛοΫσβΠϯ ͱ • ͳΜͰಋೖͯ͠Έͨͷʁ • ͲΜͳײ͡Ͱಋೖͨ͠ͷʁ • ಋೖͯ͠ΈͯͲΜͳײ͡ʁ
ڵຯ͋ΕޙͰ ฉ͍͍ͯͩ͘͞
None
͍ΘΏΔ%%%Λ࣮ݱ͢ΔͨΊͷ ΞʔΩςΫνϟͰ͢
None
ίϯϙʔωϯτΛ ͳΜ͔͛͢ʔࡉ͔͚͘ΔͭͰ͢
agenda • ΫϦʔϯΞʔΩςΫνϟɺΞτϛοΫσβΠϯ ͱ • ͳΜͰಋೖͯ͠Έͨͷʁ • ͲΜͳײ͡Ͱಋೖͨ͠ͷʁ • ಋೖͯ͠ΈͯͲΜͳײ͡ʁ
લఏ • ӽڥEC • ׂͱ࠷ۙʹϦϦʔεࡁΈ • ϦϑΝΫλϦϯά
લఏ • laravel5.5 • php7.2 • vue.js • flocss •
docker-compose • alibaba cloud
ಋೖͨ͠ཧ༝ 1. ৭ΜͳπϥΈ͕͋ͬͨ ʢཁιʔε͕Ԛ͍ʣ 2. औಘݩͷมߋ͕֬ఆ͠ ͍ͯͨ
πϥΈʢόοΫΤϯυʣ • MVC+Service • Ұ෦FatControllerɺFatService • యܕతͳτϥϯβΫγϣϯεΫϦϓτ • දࣔ༻ϩδοΫͱϏδωεϩδοΫ͕ࠞͬ͟ ͨڊେModel
πϥΈʢϑϩϯτΤϯυʣ • ViewʹϩδοΫೖΓ·͘Γ • ը໘ͱίϯϙʔωϯτ͕̍ର̍ • ϑΝΠϧ͕ڊେʹ • ͏jQueryͰΑ͘Ͷʁ
agenda • ΫϦʔϯΞʔΩςΫνϟɺΞτϛοΫσβΠϯ ͱ • ͳΜͰಋೖͯ͠Έͨͷʁ • ͲΜͳײ͡Ͱಋೖͨ͠ͷʁ • ಋೖͯ͠ΈͯͲΜͳײ͡ʁ
എܠ • ϏδωεϩδοΫ͕ͦ͜·ͰෳࡶͰͳ͍ • ͱΓ͋͑ͣࠓՁΛग़͢͜ͱ͕େࣄ
Βͳ͔ͬͨ͜ͱ • ValueObjectͷશద༻ ->Ϗδωεϧʔϧ͕ෳࡶͰͳ͘ݫີ͞ٻΊΒΕͳ ͔ͬͨ • શͳϑϨʔϜϫʔΫͷඇґଘ ->CollectionCarbonͳͲͷศརΫϥεڐ༰ • શίϯϙʔωϯτʹΞτϛοΫσβΠϯΛద༻͠ͳ͍
->අ༻ରޮՌɺSEOʢnuxt͑Αʣ
ಋೖͷ؊ • ΨνDDDͰͳ͘ɺྑ͍ͱ͜ͲΓ͍ͨ͠ • దͳϨΠϠʔ͚ͱτϥϯβΫγϣϯεΫϦϓτ͔Βͷ٫ • ୯Ұͷపఈ • ޮՌͷߴͦ͏ͳɺ࠶ར༻͢ΔݟࠐΈ͕ߴ͍ίϯϙʔωϯτͷ Έ
• ਐతʹਐΊΔ Γ͍͢ͱ͜ΖɺޮՌͷߴ͍ͱ͜Ζ͔Βঃʑʹ
agenda • ΫϦʔϯΞʔΩςΫνϟɺΞτϛοΫσβΠϯ ͱ • ͳΜͰಋೖͯ͠Έͨͷʁ • ͲΜͳײ͡Ͱಋೖͨ͠ͷʁ • ಋೖͯ͠ΈͯͲΜͳײ͡ʁ
ΫϦʔϯΞʔΩςΫνϟ • ৭ʑলུ͠ա͗ͨ݁Ռɺ͜ΕΫϦʔϯΞʔΩςΫνϟͳͷ ͔ʁͱ͍͏ʹ • υϝΠϯ͋·ΓϩδοΫ͕ͳ͘ɺΫϥε͕ͻͨ͢Βଟ ͍ɻएׯͷΓ͗͢ײɻ ->ෳࡶͳϏδωεϧʔϧ͕ͳ͔͔ͬͨΒ • ϩδοΫ͕υϝΠϯͱϓϨθϯςʔγϣϯʹ͚ΒΕͯ៉
ྷʹͳͬͨʂ ->Ή͠ΖϓϨθϯςʔγϣϯϩδοΫ͕ෳࡶͩͬͨ • ֶशίετؚΊͨॳظίετߴʂ
ΞτϛοΫσβΠϯ • ଟݴޠରԠΏ͑ɺͪΐͬͱͨ͠จݴjsonͰ ͞ͳ͚ΕͳΒͳ͍ • ࠶ར༻ੑඇৗʹߴ͘ͳͬͨ • ֶशίετؚΊͨॳظίετߴʂ
ͭ·Γ…ࠓޙʹظ
·ͱΊ
• ݫີͳΫϦʔϯΞʔΩςΫνϟΞτϛοΫσβ ΠϯͰͳ͍ɻ͕ͩͦΕͰेޮՌ͋Γͦ ͏ɻ • ಛʹwebܥ͋·Γ͜ΕΒΛΨοπϦΔ͖γ νϡΤʔγϣϯଟ͘ͳ͍ͷ͔ɻ • खΛൈ͍ͯॳظίετ͔ͳΓେ͖͍ɻ •
αʔϏεͷण໋ɺϏδωεϧʔϧͷෳࡶ͞ɺن ɺνʔϜঢ়گͳͲΛΑ͘ߟ͑ͯಋೖΛݕ౼͢ ͠ɻ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠