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
930
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
370
Other Decks in Programming
See All in Programming
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
120
C++20 射影変換
faithandbrave
0
530
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
160
Deep Dive into ~/.claude/projects
hiragram
8
1.5k
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
Gleamという選択肢
comamoca
6
760
Create a website using Spatial Web
akkeylab
0
300
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.9k
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
420
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
230
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
技術同人誌をMCP Serverにしてみた
74th
1
370
Featured
See All Featured
Embracing the Ebb and Flow
colly
86
4.7k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Building an army of robots
kneath
306
45k
GraphQLとの向き合い方2022年版
quramy
48
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
KATA
mclloyd
29
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
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͕བྷΜͩͱ͖ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͤͳ͔ͬͨ͜ͱ͕ͨ͘͞Μ͋ΔͷͰɺଓ͖࠙ձͰʂ