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
1.8k
バリデーションライブラリをフォームバリデーション以外で活用する
misoton665
0
790
Animated APIを使ってスクロールで隠れる“あのバー”を作る
misoton665
0
350
Other Decks in Programming
See All in Programming
Some more adventure of Happy Eyeballs
coe401_
2
180
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
370
Prolog入門
qnighy
4
1k
LangChainの現在とv0.3にむけて
os1ma
4
910
Ruby Parser progress report 2024
yui_knk
2
230
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
220
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
160
connect-go で面倒くささと戦う / 2024-08-27 #newmo_layerx_go
izumin5210
2
640
はじめてみよう量子プログラミング
itokoichi01
0
170
React + TextAliveでカッコいいLyric Applicatioinを作ろう!!
tosuri13
0
400
o1モデルのプロンプトエンジニアリングって?
ktc_wada
0
170
私のEbitengineの第一歩
qt_luigi
0
450
Featured
See All Featured
The Language of Interfaces
destraynor
153
23k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Code Reviewing Like a Champion
maltzj
517
39k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
354
29k
Happy Clients
brianwarren
96
6.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Designing Experiences People Love
moore
138
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.8k
A designer walks into a library…
pauljervisheath
201
24k
Mobile First: as difficult as doing things right
swwweet
221
8.8k
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͕བྷΜͩͱ͖ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ͤͳ͔ͬͨ͜ͱ͕ͨ͘͞Μ͋ΔͷͰɺଓ͖࠙ձͰʂ