Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
"ビュー"を考えるためのADRパターン @ laravel.osaka #10
n1215
PRO
April 26, 2017
Programming
2
4.8k
"ビュー"を考えるためのADRパターン @ laravel.osaka #10
2017.04.26 laravel.osaka#10のLTで使用したスライドです
ADR with Laravel サンプルコード
https://github.com/n1215/lara-adr
n1215
PRO
April 26, 2017
Tweet
Share
More Decks by n1215
See All by n1215
RoadRunnerの世界 〜 Yet Another Alt PHP-FPM
n1215
PRO
2
1.1k
ブラウザから始めるgRPC 〜 gRPC-WebにPHPを添えて
n1215
PRO
1
3.1k
PHP8時代のWebアプリケーションフレームワークの話をしよう
n1215
PRO
4
4.6k
PHPとEventSauceで始めるイベントソーシングアプリケーション
n1215
PRO
4
2.5k
形から入ったドメイン駆動設計によるゲーム開発の光と闇
n1215
PRO
13
6k
PHPでもgRPCサーバを立てたいだけの人生だった
n1215
PRO
7
6.5k
PSR-15 Request Handlerから理解するMiddlewareの仕組み
n1215
PRO
1
620
Laravelとドメインモデルと永続化モデル @ laravel.osaka #12
n1215
PRO
7
2.9k
Other Decks in Programming
See All in Programming
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
170
roadmap to rust 2024
matsu7874
1
750
Monadic Java
mariofusco
4
260
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
1k
Unity Localization で多言語対応実装しよう / xrdnk-yokohamaunity-lt10-20220513
xrdnk
0
110
microCMS × Shopifyで、ECサイトがリニューアル後急成長した話
microcms
0
470
New Relicを使った Observabilityの実現方法と活用例 / gocon 2022 spring after talk
budougumi0617
0
1.1k
クリエイティブ系のウェブサイト制作で役立つCSS技法 / CSS for develop creative website
clockmaker
2
1.5k
The future of trust stores in Python
sethmlarson
0
180
Jakarta EE 10 is Coming Your Way
ivargrimstad
0
2.3k
Explore Java 17 and beyond
josepaumard
3
650
TechFeed Conference 2022 - Kotlin Experimental
jmatsu
0
700
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
499
110k
What the flash - Photography Introduction
edds
61
9.9k
The Cult of Friendly URLs
andyhume
68
4.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
Navigating Team Friction
lara
175
11k
Facilitating Awesome Meetings
lara
29
3.9k
Building Your Own Lightsaber
phodgson
94
4.6k
WebSockets: Embracing the real-time Web
robhawkes
57
5k
How to train your dragon (web standard)
notwaldorf
57
3.8k
Agile that works and the tools we love
rasmusluckow
319
19k
Transcript
“Ϗϡʔ”Λߟ͑ΔͨΊͷADRύλʔϯ for laraval.osaka #10 2017/04/26 גࣜձࣾNextat தᒇ ݈ೋ
What is ADR ? • Action-Domain-Responder • “MVC Refinement” by
Paul M. Jones
MVCͱ ADR ͷରԠ • Model ͱ Domain • Controller ͱ
Action • View ͱ Responder
ModelͱDomain • ΄΅ಉ͡ • फڭ૪ʹͳΔͷͰࠓճύε
Controller ͱ Action • 1ΞΫγϣϯ1Ϋϥεਪ • ΞΫγϣϯʹର͢Δԣஅॲཧɾ߹ॲཧ ͷΓ͢͞ • ਆControllerΫϥεͷੜΛ્ࢭ
View ͱ Responder • ຊͷ͓ • “Ϗϡʔ”ͱʁʁʁ
LaravelΛར༻ͨ͠MVC ͷྫ
"Ϗϡʔ" = ςϯϓϨʔτʁ • Blade
JSONΛฦ͢߹ʁ • “Ϗϡʔ”͔ͩΒͱݴͬͯςϯϓϨʔτΛ ͏ͱݶΒͳ͍
Presentation Domain Separation ͷݪଇ • MVC͕ຊʹ࣮ݱ͔ͨͬͨ͠ίτ • υϝΠϯϓϨθϯςʔγϣϯʹൺ Δͱ͍ճ͘͢͠มߋ͞Εʹ͍͘ •
ૄ݁߹ʹ͓ͯ͘͠ͱͤʹͳΕΔ
Ϗϡʔͷׂ • υϝΠϯʢϞσϧʣͷॲཧ݁ՌΛϢʔ βʔʹͲ͏ݟͤΔ͔ΛܾΊΔϩδοΫ • ΫϥΠΞϯτ͕ҧ͑Ͳ͏ݟͤΔ͖͔ มΘΔ • ϒϥβɺίϚϯυϥΠϯ
WebΞϓϦέʔγϣϯͷ”Ϗϡʔ” ϢʔβʔϞσϧ $user ͳͲυϝΠϯͷग़ྗ ɹ↓ɹม HTTPϨεϙϯε - HTML - JSON
etc.
HTTPϨεϙϯε Blade ςϯϓϨʔτ →ϨεϙϯεϘσΟͷΈ • εςʔλείʔυ • HTTPϨεϙϯεϔομ "Ϗϡʔ"͕ѻ͏͖ରͷҰ෦
None
Laravel (>= 5.3) / Lumen Ͱͷྫ
Responder
ϨεϙϯεΛHTMLʹมߋ͍ͨ͠ • ResponderΛೖΕସ͑Δ • Domain͍·ΘͤΔ
·ͱΊ • ADRMVC͕ຊʹΓ͔ͨͬͨίτ • WebΞϓϦʹͱͬͯͷ"Ϗϡʔ"HTTPϨ εϙϯεΛੜ͢Δॲཧͷ͜ͱ • ςϯϓϨʔτ͚͕ͩ”Ϗϡʔ"Ͱͳ͍
ࢀߟ - pmjones/adr https://github.com/pmjones/adr - Radar.Project https://github.com/radarphp/Radar.Project - Presentation Domain
Separation https://martinfowler.com/bliki/PresentationDomainSeparation.html - Single Action Controllers https://laravel.com/docs/5.4/controllers#single-action-controllers - Lumen/Laravel Action-Domain-Responder(ADR)Ξϓϩʔν http://qiita.com/ytake/items/db8cb64493f08f5b9706