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
960
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
380
Other Decks in Programming
See All in Programming
Improving my own Ruby thereafter
sisshiki1969
1
160
testingを眺める
matumoto
1
140
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
160
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
400
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
7
2.5k
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
2.8k
OSS開発者という働き方
andpad
5
1.7k
為你自己學 Python - 冷知識篇
eddie
1
350
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
170
より安全で効率的な Go コードへ: Protocol Buffers Opaque API の導入
shwatanap
1
190
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
170
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Six Lessons from altMBA
skipperchong
28
4k
The Cult of Friendly URLs
andyhume
79
6.6k
Practical Orchestrator
shlominoach
190
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Designing for Performance
lara
610
69k
Faster Mobile Websites
deanohume
309
31k
Side Projects
sachag
455
43k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
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͕བྷΜͩͱ͖ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͤͳ͔ͬͨ͜ͱ͕ͨ͘͞Μ͋ΔͷͰɺଓ͖࠙ձͰʂ