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
Keigo Ebihara
August 25, 2019
Programming
1
1.7k
しんどくならないモジュール分割
Elmアプリケーションの規模が大きくなってきたときのモジュールを分割する方法について考えてみました
Keigo Ebihara
August 25, 2019
Tweet
Share
More Decks by Keigo Ebihara
See All by Keigo Ebihara
tRPCを実務に導入して分かった旨味と苦味
misoton665
5
2.2k
バリデーションライブラリをフォームバリデーション以外で活用する
misoton665
0
920
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
370
Other Decks in Programming
See All in Programming
AI Coding Agent Enablement in TypeScript
yukukotani
16
6.5k
漸進。
ssssota
0
240
當開發遇上包裝:AI 如何讓產品從想法變成商品
clonn
0
2.2k
Doma で目指す ORM 最適解
nakamura_to
1
160
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
100
ワンバイナリWebサービスのススメ
mackee
10
7.2k
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
120
2025年のz-index設計を考える
tak_dcxi
13
5.2k
DevDay2025-OracleDatabase-kernel-addressing-history
oracle4engineer
PRO
6
1.6k
インターフェース設計のコツとツボ
togishima
2
430
TSConfigからTypeScriptの世界を覗く
planck16
2
1.2k
Cloudflare Workersで進めるリモートMCP活用
syumai
13
1.9k
Featured
See All Featured
Optimizing for Happiness
mojombo
378
70k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
A Tale of Four Properties
chriscoyier
159
23k
GitHub's CSS Performance
jonrohan
1031
460k
BBQ
matthewcrist
88
9.7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
15
880
A better future with KSS
kneath
239
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
͠ΜͲ͘ͳΒͳ͍ Ϟδϡʔϧׂ "VH &MNNFFUVQJO4VNNFS !NJTPUPO
ࣗݾհ ւݪܓޗ!NJTPUPO 'SJOHFגࣜձࣾ 6OJQPTϑϩϯτΤϯυΤϯδχΞ &MN 3FBDU/BUJWF 4DBMB ઌ݄ͷ8&# %#13&44Ͱ &MNͷҰൠهࣄΛॻ͔ͤͯ
͍͖ͨͩ·ͨ͠ɻ
͜ͷΞϓϦͲ͏࡞Γ·͔͢ʁ
&MNΛॻ͍ͨ͜ͱ͕͋ΔਓͳΒ ؆୯ͳͣ
͝ͱʹNPEVMFΛׂ͢Δ ͱͨ͠ΒͲ͏࡞Γ·͔͢ʁ
IUUQTHVJEFFMNMBOHKQXFCBQQTTUSVDUVSFIUNMl"O*OUSPEVDUJPOUP&MNzΑΓ
IUUQTHVJEFFMNMBOHKQXFCBQQTTUSVDUVSFIUNMl"O*OUSPEVDUJPOUP&MNzΑΓ ཁ ॳΊ͔ΒϑΝΠϧΛࡉ͔͚ͯ͘ॻ͘ͷΦεεϝ͠·ͤΜɻ ͨͱ͑ߦʹͳͬͨͱͯ͠େৎɻ ͦ͏ɺ&MNͳΒͶɻ
ׂ͍͚ͯ͠ͳ͍ ແҋ୫ͱׂ͍͚ͯ͠ͳ͍
ͬͺΓ͍͔ͭ ׂ͠ͳ͚ΕͳΒͳ͍
ϞδϡʔϧΛׂ͢Δ࣌ͷ͜ͱΛ ߟ͑ͯΈ·͢
ׂ͢Δ࣌ʹߟ͑Δ͜ͱ w ׂ͢Δ୯Ґ w σΟϨΫτϦߏ w ϞδϡʔϧͷΠϯλʔϑΣΠε w ଞʹ৭ʑ
ׂ͢Δ࣌ʹߟ͑Δ͜ͱ w ׂ͢Δ୯Ґ w σΟϨΫτϦߏ w ϞδϡʔϧͷΠϯλʔϑΣΠεˡ͜͜ͷΛ͠·͢ w ଞʹ৭ʑ
ׂ͠ͳ͍࣌ͱͷҧ͍ .PEVMF $IJME" $IJME# 1BSUT" 1BSUT# 1BSFOU ׂ͠ͳ͍߹ ׂ͢Δ߹ ׂΛ͢Δ߹ϞδϡʔϧͱࢠϞδϡʔϧͷ
ίϛϡχέʔγϣϯ͕ඞཁʹͳΔ
ͱࢠͷίϛϡχέʔγϣϯ w ࢠ͔ΒʹɺࢠͷλΠϛϯάͰ࡞༻͢Δ w ͔ΒࢠʹɺͷλΠϛϯάͰ࡞༻͢Δ $IJME" $IJME# 1BSFOU
಄ͷྫͰݴ͏ͱ ࢠ"ͷϘλϯΛԡͨ͜͠ͱΛʹ͑ ࢠ͔Β ͕ࢠ#ͷΧϯτΛ ͢Δ ͔Βࢠ
ࢠ͔Β w ࢠͲΜͳʹΘΕͯΔͷ͔Βͳ͍ͨΊɺͷ.THΛ ͏͜ͱͰ͖ͳ͍ɻ w ࢠͷϘλϯ͕ԡ͞Εͨ࣌ͷίʔϧόοΫͷΑ͏ͳͷ͕͋Ε ࣮ݱͰ͖ͦ͏ɻ 1BSFOU $IJME
ίʔϧόοΫͷΘΓʹ $NEΛ༻͢Δ w ҙͷ.THΛൃߦ͢Δ$NEΛ࡞Δؔ w ͷ.THΛൃߦ͢Δ$NEΛࢠͷVQEBUFؔʹ͢ɻ w ࢠ͕ͦͷ$NEΛฦ٫͢ΕίʔϧόοΫ͕ى͖Δɻ
w $NEOPOFΛฦͤίʔϧόοΫى͖ͳ͍ɻ w ͭ·Γɺࢠ͕ͷ.THΛൃߦ͢Δ͔બͰ͖Δɻ
$NEΛίʔϧόοΫʹ͏ VQEBUFؔ ͍ͭͷVQEBUFؔ ίʔϧόοΫΛઃఆͰ͖ΔVQEBUFؔ
ࢠ͔Βͷ.THΛୟ͘ϑϩʔ 1BSFOU $IJME &MN3VOUJNF ࢠͷVQEBUFؔʹίʔϧόοΫ༻ͷ$NEΛ͢ɻ ࢠίʔϧόοΫ༻ͷ$NEΛฦ٫͢Δɻ ͦͷ$NEΛ&MN3VOUJNFʹฦ٫͢Δɻ
&MN3VOUJNF$NEΛղऍͯ͠ͷ.THΛൃߦ͢Δɻ
͔Βࢠ w ͲΜͳࢠΛΘΕͯΔͷ͔Λ͍ͬͯΔͨΊɺࢠʹఆٛ ͞ΕͨؔΛ͏͜ͱ͕Ͱ͖Δɻ 1BSFOU $IJME
ࢠͷ.THΛൃߦ͢Δ$NE w ίʔϧόοΫͷ࣌ͱಉ༷ʹࢠͷ.THΛൃߦ͢Δ$NEΛ࡞ ͯ͠FYQPTJOH͢Δɻ w VQEBUFؔͰࣗͷ.THʹ$NENBQͯ͠༻͢Δɻ
͕ࢠͷ.THΛୟ͘ϑϩʔ 1BSFOU $IJME &MN3VOUJNF ࢠ͕ެ։͍ͯ͠Δ$NEΛ&MN3VOUJNFʹฦ٫͢Δɻ &MN3VOUJNF$NEΛղऍͯ͠ͷ.THΛൃߦ͢Δɻ .THΛղऍͯ͠ࢠͷVQEBUFؔΛݺͿɻ
·ͱΊͱҙ w ࢠ͔ΒʹɺࢠͷλΠϛϯάͰ࡞༻͢Δ ˠࢠͷVQEBUFؔʹͷίʔϧόοΫ༻$NEΛ͢ɻ w ͔ΒࢠʹɺͷλΠϛϯάͰ࡞༻͢Δ ˠࢠ͕֎෦͔Β͏ͨΊͷ$NEΛެ։͕ͦ͠ΕΛୟ͘ɻ w
ࡐʹͨ͠ΞϓϦέʔγϣϯʹରͯ͠໌Β͔ʹաͰ͢ɻ w EJTQBUDIؔଟ༻͢Δͱίʔυ͕ෳࡶʹͳΔͷͰҙɻ
ͤͳ͔ͬͨʜ w ࢠͷ7JFXؔʹ.THΛ͚ͩ͢͡Όμϝͳͷʁ w ͷίʔϧόοΫ$NE͡Όͳ͘.TH͡Όμϝͳͷʁ w ࢠ.PEFM.PEFMͳؔΛެ։͢Εྑ͍͡Όͳ͍ɻ w QPSU͕བྷΜͩͱ͖ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͤͳ͔ͬͨ͜ͱ͕ͨ͘͞Μ͋ΔͷͰɺଓ͖࠙ձͰʂ