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
Eloquentに別れを告げるタイミングについて考えた
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
y_ahiru
May 22, 2019
Programming
2.1k
2
Share
Eloquentに別れを告げるタイミングについて考えた
考えました。
y_ahiru
May 22, 2019
More Decks by y_ahiru
See All by y_ahiru
恣意性から考える、変更に強いモデルの作り方
yahiru
1
2.6k
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
10
3k
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
1.2k
フロントエンドエンジニアも知っておきたい HTTP/3 で変わること
yahiru
16
13k
ゆるふわCQRS入門
yahiru
2
800
設計におけるソリューションドメイン
yahiru
3
1.8k
PHPで始めるGitHub Actions
yahiru
1
870
5ヶ月でカバレッジを20%から90%にあげた話
yahiru
2
7k
入門ミューテーションテスト/ A bigginer's guide to Mutation testing
yahiru
0
1.7k
Other Decks in Programming
See All in Programming
権限チェックの一貫性を型で守る TypeScript による多層防御
mnch
4
990
初めてのRubyKaigiはこう見えた
jellyfish700
0
370
CSC307 Lecture 17
javiergs
PRO
0
290
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.2k
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
160
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
180
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
210
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
190
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.4k
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
230
TSKaigi2026-静的解析への投資がAI時代のコード品質を支える ── カスタムESLintルールの設計と運用
hayatokudou
7
1.3k
net-httpのHTTP/2対応について
naruse
0
380
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
230
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
How to build a perfect <img>
jonoalderson
1
5.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
New Earth Scene 8
popppiees
3
2.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Fireside Chat
paigeccino
42
3.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Documentation Writing (for coders)
carmenintech
77
5.4k
Exploring anti-patterns in Rails
aemeredith
3
380
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