Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Eloquentに別れを告げるタイミングについて考えた
Search
y_ahiru
May 22, 2019
Programming
2.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Eloquentに別れを告げるタイミングについて考えた
考えました。
y_ahiru
May 22, 2019
More Decks by y_ahiru
See All by y_ahiru
恣意性から考える、変更に強いモデルの作り方
yahiru
1
2.9k
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
10
3.2k
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
1.3k
フロントエンドエンジニアも知っておきたい HTTP/3 で変わること
yahiru
16
13k
ゆるふわCQRS入門
yahiru
2
850
設計におけるソリューションドメイン
yahiru
3
1.9k
PHPで始めるGitHub Actions
yahiru
1
890
5ヶ月でカバレッジを20%から90%にあげた話
yahiru
2
7.1k
入門ミューテーションテスト/ A bigginer's guide to Mutation testing
yahiru
0
1.7k
Other Decks in Programming
See All in Programming
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
golang-bob.pdf
iwatsukayura
0
130
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
990
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
290
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
180
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
350
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Workers Cache を知る
syumai
0
370
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
190
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
740
Performance Optimization With LLMs
xleitix
0
190
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
220
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
280
RailsConf 2023
tenderlove
30
1.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Docker and Python
trallard
47
4.2k
Thoughts on Productivity
jonyablonski
76
5.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
410
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
640
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Balancing Empowerment & Direction
lara
6
1.3k
Transcript
Laravel Meetup Tokyo Vol.12 ٢ా͋ͻΔ (@strtyuu) &MPRVFOUʹผΕΛࠂ͛Δ λΠϛϯάʹ͍ͭͯߟ͑ͨ
ࣗݾհ ٢ా͋ͻΔ !TUSUZVV τΡΪϟολʔגࣜձࣾ 4PGUXBSF&OHJOFFS
$VSBUJPO$PNNVOJDBUJPO1MBUGPSN IUUQTUPHFUUFSDPN ·ͱΊΑ͏ɺ͋ͭ·Ζ͏
&MPRVFOU Active Record Domain Model ORM × ×
03. ɾ%#͔Βऔಘͨ͠ΛΦϒδΣΫτʹม͢Δͷ
"DUJWF3FDPSE ɾςʔϒϧɾϏϡʔͷεΩʔϚͱີ݁߹ͨ͠ϓϩύςΟ ɾϨίʔυΛΠϯελϯεԽͯ͠ৼΔ͍Λ࣋ͨͤΔ ɾυϝΠϯϞσϧͷҰछ ɾ%#ΞΫηεͷΧϓηϧԽ
%PNBJO.PEFM ɾυϝΠϯʹଘࡏ͢Δ֓೦ΛΫϥεԽͨ͠ͷ ɾυϝΠϯʹযΛͯͨɺ७ਮͳϩδοΫͷू·Γ
&MPRVFOUͷྑ͍ॴ ɾߴػೳʂ ɾָʹ։ൃ͕Ͱ͖Δʂ ɾศརͳϥΠϒϥϦͨ͘͞Μʂ
&MPRVFOUͷਏͦ͏ͳॴ ɾΫΤϦΛ࠷దԽ͍ͨ͠ͱ͖ ɾ3FQPTJUPSZύλʔϯͱͷ૬ੑ͕ඍົʁ ɾϑΝοτʹͳΓ͕ͪ ɾϞσϧ͕ςʔϒϧߏͱҰக͠ͳ͍ͱ͖
ΫΤϦͷ࠷దԽ
4&-&$5 '30.AQPTUTA 8)&3&AQPTUTAAJEA -*.*5 4&-&$5 '30.ADPNNFOUTA
8)&3& ADPNNFOUTAAQPTU@JEA "/%ADPNNFOUTAAQPTU@JEA*4/05/6--
4&-&$5 '30.AVTFSTA 8)&3&&9*454 4&-&$5 '30.AQPTUTA
8)&3& AVTFSTAAJEAAQPTUTAAVTFS@JEA
ɾ͍ΫΤϦ͕ు͔Εͯਏ͍ ಀ͛ಓ͕͋ΔͷͰɺผΕΛࠂ͛Δཧ༝ʹͳ Γʹ͍͘ʁ ɾ͕ڐ༰ൣғͰ͋Εແࢹ͢Δ͜ͱ ɾΫϦςΟΧϧͳॴ͚ͩී௨ʹ42-Λॻ͍ͯ ޡຐԽ͢ͱ͔ग़དྷΔ
Repositoryύλʔϯͱͷ ૬ੑ͕ඍົʁ
3FQPTJUPSZύλʔϯ ɾӬଓԽઌͱͷΓͱΓΛӅณ͢Δ
͑ͬ
ɾ&MPRVFOUͰ%#ΞΫηε͕ग़དྷΔ͍ͤͰɺ ɹ3FQPTJUPSZͷ֎ͰΫΤϦΛॻ͍ͯ͠·͏ &MPRVFOUʹผΕΛࠂ͛ΔΑΓɺίʔυϨ Ϗϡʔͱ͔ͰೝࣝΛ߹Θͤͨํ͕ྑͦ͞͏ ɾ&MPRVFOUͷ͍ͤͱ͍͏͔ɺ࣮ऀͷ
ϑΝοτʹͳΓ͕ͪ
ΈΜͳ͕&MPRVFOUʹΒͤͯ ͦ͏ͳ͜ͱ ɾ%#ͱͷΓͱΓ ɾଞͷ&MPRVFOUͱͷϦϨʔγϣϯ ɾυϝΠϯϞσϧͱͯ͠ͷৼΔ͍
&MPRVFOUΛϑϧ׆༻ͯ͠Δਓ ͕ͬͯͦ͏ͳ͜ͱ ɾϓϩύςΟͷόϦσʔγϣϯ ɾϓϨθϯςʔγϣϯϩδοΫ
※Laravel Boilerplate - https://github.com/rappasoft/laravel-5-boilerplate/blob/master/app/ Models/Auth/Traits/Attribute/UserAttribute.php ϓϩύςΟͷόϦσʔγϣϯ
※Laravel Boilerplate - https://github.com/rappasoft/laravel-5-boilerplate/blob/master/app/ Models/Auth/Traits/Attribute/UserAttribute.php ϓϨθϯςʔγϣϯϩδοΫ
ɾ&MPRVFOU͕ศར͗͢ΔͨΊʹɺ͋Ε͜ Ε&MPRVFOUʹ࣮͢Δ͜ͱͰ'BUʹͳͬͯ ͠·͏͜ͱ͕͋Δ &MPRVFOUʹผΕΛࠂ͛ͳͯ͘ɺ͝ͱ ʹΫϥεΛ͚Εই༊͑Δͣ ɾ&MPRVFOUͷ͍ͤͱ͍͏͔ɺΫϥεઃܭͷ
ςʔϒϧߏͱҰக͠ͳ͍ Ϟσϧ
" # $ % & ςʔϒϧA ςʔϒϧB ͤͳύλʔϯ
Model A Model B
" # $ % & ςʔϒϧA ςʔϒϧB ਏ͘ͳΔύλʔϯ
Model A × ×
ͳͥਏ͘ͳΔͷ͔ ɾ"DUJWF3FDPSEςʔϒϧɾϏϡʔͱର͕લ ఏͷσβΠϯύλʔϯ ɾKPJOલఏͷϝιου͕ଘࡏͨ͠Γ͢Δͱਏ͞ͷ ࢝·Γ ɾۀϩδοΫςʔϒϧߏͱແؔʹมԽ ͍ͯ͘͠ ɾΦϒδΣΫτϑΝʔετͳઃܭͱ૬ੑ͕ѱ͍
ɾ.Z42-ͷ7*&8*OEFYͷͱ͔͋ΔͷͰʜ
ɾ࠷େͷϝϦοτͰ͋Δ%#ͱີ݁߹ͳ෦ ɺಉ࣌ʹ࠷େͷσϝϦοτʹͳΓ͑Δ ७ਮͳυϝΠϯϞσϧ͕ඞཁʹͳͬͨΒɺ &MPRVFOUͱ͓ผΕ͢Δ߹ਤͳͷ͔͠Εͳ ͍ ٽ ɾ͜Ε&MPRVFOUͷຊ࣭తͳ෦ͱͷ૬ੑ ͷѱ͞
·ͱΊ ɾ͍͍ͩͨͷਏ͞ɺ࣮ͷͰղܾͰ͖Δͱࢥ͏ ɾ࣏҆ͷѱ͍ίʔυΛॻ͔ΕͨΒɺͪΌΜͱϨϏϡʔ Ͱ͍ͯ͜͠͏ ɾΫΤϦͷ࠷దԽ͕͖͔ͭͬͨΒ͓ผΕʹͳΔ͔͠ Εͳ͍͠ɺ·͊ͳΜͱ͔ͳΔ͔͠Εͳ͍ ɾ७ਮͳυϝΠϯϞσϧ͕ཉ͘͠ͳͬͨΒɺଟ͓ผ Ε͠ͳ͖Ό͍͚ͳ͍
ࢀߟࢿྉ ɾπΠολʔϥϯυͷΈͳ͞Μ ɹIUUQTUPHFUUFSDPNMJ ɾΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟύλʔϯ ɹIUUQTXXXBNB[PODPKQEQ ɾ/&5ͷΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟ ɹIUUQTXXXBNB[PODPKQEQ#;2;+/& ɾ-BSBWFM#PJMFSQMBUF
ɹIUUQTHJUIVCDPNSBQQBTPGUMBSBWFMCPJMFSQMBUF