Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elixir
Search
Naoya Ito
October 09, 2015
Technology
15
3.1k
Elixir
Kaizen Platform, Inc の社内勉強会での資料です。基本的には以前発表した資料の切り貼りです
Naoya Ito
October 09, 2015
Tweet
Share
More Decks by Naoya Ito
See All by Naoya Ito
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.7k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
7.2k
Functional TypeScript
naoya
18
6.5k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
75
36k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.5k
20230227-engineer-type-talk.pdf
naoya
91
79k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
Other Decks in Technology
See All in Technology
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
360
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
最近の生成 AI の活用事例紹介
asei
1
100
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
210
【開発を止めるな】機能追加と並行して進めるアーキテクチャ改善/Keep Shipping: Architecture Improvements Without Pausing Dev
bitkey
PRO
1
120
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
250
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.5k
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
160
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
150
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
230
障害対応訓練、その前に
coconala_engineer
0
190
特別捜査官等研修会
nomizone
0
540
Featured
See All Featured
Between Models and Reality
mayunak
0
150
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
The browser strikes back
jonoalderson
0
120
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
88
The Language of Interfaces
destraynor
162
25k
How Software Deployment tools have changed in the past 20 years
geshan
0
30k
Claude Code のすすめ
schroneko
65
200k
How to build a perfect <img>
jonoalderson
0
4.6k
Ethics towards AI in product and experience design
skipperchong
1
140
Documentation Writing (for coders)
carmenintech
77
5.2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Crafting Experiences
bethany
0
21
Transcript
&MJYJS /BPZB*UP ,BJ[FO1MBUGPSN *OD
&MJYJSͷงғؾ
&MJYJS • &SMBOH7.ͷ্Ͱಈ͘ݴޠ – &SMBOH7.ͷڧΈ ฒߦॲཧੑೳɺোੑ Λͦͷ··ʹɺγϯλο ΫεΛೃછΈ͘͢ • KPTFWBMJN&SMBOHͰݟͨ͜ͱΈΜͳؾʹೖ͚ͬͨͲɺݟͳ͔ͬͨ͜ͱ
ΈΜͳݏ͍ – &SMBOHͱ૬ޓޓ – 051ͪΖΜ͋ΔΑ • ϞμϯͳύοέʔδཧγεςϜɺ-B[ZίϨΫγϣϯ 4USFBN ɺ ϓϩτίϧͳͲͷՃཁૉ • ৄ͘͠ – IUUQTTQFBLFSEFDLDPNOBPZBFMJYJSHPTIBPKJF
ಈతܕ͚ͷؔܕݴޠ
1IPFOJY&MJYJSPO3BJMT
Ϟνϕʔγϣϯ
&MJYJS ͳͲ ΛֶͿͱྑ͍ཧ༝ • ݴޠτϨϯυͷҠΓมΘΓ – 4DBMBɺ&MJYJSɺ$MPKVSFɺ(Pɺ3VTU • ΑΓ4IBSFE/PUIJOH
– ΫϥυωΠςΟϒŋŋŋԣʹεέʔϧ – ϞμϯͳฒߦɾฒྻΞϓϩʔν – *NNVUBCMFͳσʔλܕ – ແݶσʔλ 8FC͔Βྲྀೖ͚ͭͮ͠ΔσʔλͳͲ ͷந తѻ͍ – 㱺ؔܕݴޠ
ؔܕͷτϨϯυ • ৽͍͠ݴޠʹେͳΓখͳΓؔܕͷΤοηϯ ε – 4DBMBɺ&MJYJSɺ$MPKVSFɺ3VTUɺ4XJGU • طଘͷݴޠʹӨڹ –
+BWBͷ0QUJPOBMܕ • จ຺Λ࣋ͬͨ Ϟφυ – &4 #BCFM • ͳΜ͔#BCFMʹඌݺͼग़͠࠷దԽೖͬͨΒ͍͠
ϞμϯͳϥϯλΠϜ • $$ -".1ݴޠʹͳ͔ͬͨ৽͍͠ػೳΛϥϯλ ΠϜ͕͍࣋ͬͯΔ – ྫϝϞϦϞσϧ • &SMBOH&MJYJSͷ1FS1SPDFTT($ •
3VTUͷΦʔφʔγοϓϞσϧ – ྫฒߦɾฒྻॲཧ • "DUPS • $IBOOFM • 45. – ྫোϞσϧ • -FUJUDSBTI
Α͏͢Δʹ • ݴޠͷύϥμΠϜ͕มΘΖ͏ͱͯ͠Δ – ύϥμΠϜ͕มΘΔͱ͍͏ΑΓผͷύϥμΠϜͷݴޠʹτϨϯυ ͕ҠΓͭͭ͋Δ • ͦͷลͷݴޠʹೃછΜͰ͓͘ͱ૯߹తͳֶशίετΛԼ ͛ΒΕΔ –
+43VCZʹೖΖ͏ͱͯ͠Δมߋͷഎܠ – ৽͍͠ϛυϧΣΞɺϑϨʔϜϫʔΫϥΠϒϥϦͷΠϯλ ϑΣʔε – ʮϦΞΫςΟϒʯʮετϦʔϜʯΈ͍ͨͳύϥμΠϜ ͳͷͰʮ&MJYJSΛֶʯͱ͍ ͏ΑΓͦͷลͷ৽͍͠ͷԿ͔ ͬͱ͘ͱ͍͍Α͍ͬͯ͏
&MJYJSͷϥϯλΠϜ
ࡢࠓ͜Μͳ͜ͱ͋Γ·ͤΜ͔ • ͨͩͷ+40/"1*ʹ3BJMTͰŋŋŋ – ϋΠτϥϑΟοΫͳҊ݅Ͱ͍ͮΒ͍ – ཁ݅ʹରͯ͠ϝϞϦϑοτϓϦϯτ͕େ͖͗͢ – ଓ͕ଟ͍ͱεέʔϧ͠ͳ͍
– োੑʹෆ҆ • ʮεύΠΫͨ͠ͷͰམͪ·ͨ͠ʯͰࡁ·͞Εͳ͍ɻࠂ αʔόʔͱ͔
,BJ[FO1MBUGPSNͰŋŋŋ • ҎԼͷέʔεͰ࣮ࡍʹ͋ͬͨ – ࠂ৴ͷ֎෦αʔόʔͱͷΓͱΓ • ଟྔͷଓ – 3FEJTͱ*0ͯ͠ฦ͢Δ͚ͩͷ"1*αʔόʔ •
ཁ݅γϯϓϧɻෳࡶͳ.PEFM7JFXཁΒͳ͍ • ͰεύΠΫͰམͱͨ͘͠ͳ͍ ͻͱ·ͣ/PEFKTͰ ରԠͨ͠
親 子 fork() ϚϧνϓϩηεϞσϧʹΑΔฒߦॲཧ ྫ3BJMTͷ࣮ߦڥ
1SPT$POT • 1SPT – ҆શ • ϦΫΤετ͝ͱʹϝϞϦۭؒ㱺Ϋϥογϡͯ͠ ଞʹӨڹ͠ͳ͍ – ϓϩάϥϛϯάϞσϧ͕୯७
ಉظͰ0, – ϚϧνίΞ • $POT – εέʔϥϏϦςΟʹ • ϝϞϦେ㱺࠷େϓϩηεಉ࣌ฒߦ্ݶ • 04ϓϩηεεϨουͷίϯςΩετεΠον
࣌ؒ A B A C D B ・・・ select() /
epoll() ίϯςΩετ εΠον ΠϕϯτۦಈϞσϧʹΑΔฒߦॲཧ ྫ&WFOU.BDIJOF /PEFKT
1SPT$POT • 1SPT – εέʔϥϏϦςΟ ߴ͍ฒߦॲཧੑೳ • ϝϞϦϑοτϓϦϯτখ͍͞ •
ಉ࣌ଓ͕૿͑ͯεέʔϧ • $POT – োੑʹ • མͪΔͱ͖શ෦མͪΔ • ϝϞϦϦʔΫ͜Θ͍ – ϓϩάϥϛϯάϞσϧ͕ෳࡶ˞/PEFKTͩͱͦΕ΄ͲͰͳ͍ – ϚϧνίΞ$16Λ͍ͮΒ͍
τϨʔυΦϑ • ฒߦॲཧੑೳՔ͛ͳ͍͕҆શͰ୯७ͳϚϧν ϓϩηε εϨου Ϟσϧ͔ • ฒߦॲཧੑೳ͕ߴ͍͕ӡ༻ʹؾΛݣ͏Πϕϯτ ۦಈϞσϧ͔ ͙͵͵ŋŋŋ
ͦ͜Ͱ&SMBOHͰ͢
&SMBOHͷ࣮ߦڥ • #&". &SMBOH7. – ܰྔϓϩηεŋŋŋ࣮ߦίϯςΩετ • খ͍͞ϫʔυɺىಈʹdϚΠΫϩඵ –
ฒߦॲཧੑೳ͕ߴ͍ • 7.͕ܰྔϓϩηεΛεέδϡʔϦϯά – 7.εϨουຖʹϥϯΩϡʔ – ཪଆͰඇಉظεϨουϓʔϧ ref: h+p://www.erlang-factory.com/upload/presenta=ons/708/HitchhikersTouroEheBEAM.pdf
ΞΫλʔϞσϧ ϝοηʔδύογϯά ͯ͢ίϐʔ 4IBSFE/PUIJOH ϝʔϧϘοΫεʹ ΩϡʔΠϯά
&SMBOHͰͷ ωοτϫʔΫαʔόʔ • ϦΫΤετʹܰྔϓϩηε – ҆શ • ܰྔϓϩηεŋŋŋಠཱ࣮ͨ͠ߦίϯςΩετ • 4IBSFE/PUIJOHŋŋŋ͋Δϓϩηε͕Ϋϥογϡͯ͠
ͳ͍ – ߴ͍ฒߦॲཧੑೳ • ܰྔŋŋŋϝϞϦϑοτϓϦϯτখ͍͞ • Ϣʔβʔϥϯυ04ͷίϯςΩετεΠονͳ͠
&SMBOHͷϝϞϦϞσϧ • QFS1SPDFTT($ – ϓϩηεຖʹ($ • άϩʔόϧ($ͩͱશମʹӨڹ͢Δ • ϓϩηε –
4IBSFE/PUIJOH – ϓϩηε)FBQ • ($ܰྔϓϩηεຖʹΒͤɺཁΒͳ͘ͳͬͨΒഇغ ؆୯Ͱޮ ͕Α͍ ҆ఆͨ͠Ԡੑೳ ߴ͍োੑ
4VQFSWJTPS Supervisor ϓϩηε ࢹ ʮಥવͷࢮʂʯ ϓϩηεࢮΜͩ͠ɺઓུ ʹ߹Θͤͯ࠶ىಈ͠ͱ͘ Θ crash
-FUJUDSBTI • ࣦഊʹඋ͑ͳ͍ɻྫ֎Λั·͑ͳ͍ • 4VQFSWJTPSͰࢹ͓͍ͯͯ͠ɺͦͷ··ى͜͢ ͳΓύϥϝʔλม͑ͯϦτϥΠͤ͞ΔͳΓŋŋŋ ނোରԠϞσϧ͕ ݴޠج൫Ͱఏڙ
/PEFKTWT&SMBOH • /PEFKTWT&SMBOH – IUUQLVFOJTIJIBUFOBEJBSZKQFOUSZ – ނোϞσϧɺίʔυมߋɺίʔυҠಈɺແఀࢭΞοϓάϨʔυɺ ͜͏͍͏ͷͬͯYͰμϯλΠϜͷγεςϜͩͱେࣄͩΑ Ͷɻ
+PF"SNTUSPOH – ݁ہੑೳΑΓނোੑͳΜͩΑͶᴷͦΕͳ
Ͱ&SMBOHͳΜͰ͠ΐ͏
ͦ͜Ͱ&MJYJS
&MJYJS • &SMBOH7.ͷ্Ͱಈ͘ݴޠ – &SMBOH7.ͷڧΈ ฒߦॲཧੑೳɺোੑ Λͦͷ··ʹɺγϯλο ΫεΛೃછΈ͘͢ • KPTFWBMJN&SMBOHͰݟͨ͜ͱΈΜͳؾʹೖ͚ͬͨͲɺݟͳ͔ͬͨ͜ͱ
ΈΜͳݏ͍ – &SMBOHͱ૬ޓޓ – 051ͪΖΜ͋ΔΑ • ϞμϯͳύοέʔδཧγεςϜɺ-B[ZίϨΫγϣϯ 4USFBN ɺ ϓϩτίϧͳͲͷՃཁૉ • ৄ͘͠ – IUUQTTQFBLFSEFDLDPNOBPZBFMJYJSHPTIBPKJF
None
Ͱ8FC"1*࡞Δͷ ͍͠ΜͰ͠ΐ͏
1IPFOJYᴷ&MJYJSPO3BJMT
None
1IPFOJY Cowboy Plug Phoenix .JEEMFXBSF )5514FSWFS &SMBOH1SPDFTT 3FFRVFTU
ϕϯνϚʔΫ ref: h+p://www.li+lelines.com/blog/2014/07/08/elixir-vs-ruby-showdown-phoenix-vs-rails/ $ ./wrk -t12 -c800 -d180S --timeout 2000
"http://tranquil-brushlands-6459.herokuapp.com/showdown" Running 3m test @ http://tranquil-brushlands-6459.herokuapp.com/showdown 12 threads and 800 connections Thread Stats Avg Stdev Max +/- Stdev Latency 318.52ms 139.92ms 1.39s 82.03% Req/Sec 224.42 57.23 368.00 68.50% 484444 requests in 3.00m, 0.99GB read Socket errors: connect 0, read 9, write 0, timeout 0 Requests/sec: 2691.03 Transfer/sec: 5.65MB $ ./wrk -t12 -c800 -d180S --timeout 2000 "http://dry-ocean-9525.herokuapp.com/showdown" Running 3m test @ http://dry-ocean-9525.herokuapp.com/showdown 12 threads and 800 connections Thread Stats Avg Stdev Max +/- Stdev Latency 3.07s 2.06s 8.36s 70.39% Req/Sec 24.65 9.97 63.00 67.10% 54256 requests in 3.00m, 122.50MB read Socket errors: connect 0, read 1, write 0, timeout 0 Requests/sec: 301.36 Transfer/sec: 696.77KB Phoenix Rails w/ Puma ॾ݅͋ΔͷͰߟࣗݾͰɻ 1IPFOJY͕ൺֱ͍ͯ͠ͷؒҧ ͍ͳͦ͞͏
ݴޠͱͯ͠ͷ&MJYJS
&MJYJS • &SMBOH7.ͷ্Ͱಈ͘ • ಈతܕ͚ͳؔܕݴޠ • ͜ͳΕͨύοέʔδཧγεςϜ.JY • ܰྔϓϩηεɺΞΫλʔʹΑΔฒߦॲཧ •
051
None
3VCZ • Ұݟ͢Δͱ3VCZͬΆ͍ • ࣮ࡍͦΕ΄Ͳ3VCZͬΆ͘ͳ͍ • Ή͠Ζ&SMBOH051 – γϯλοΫε͕ೃછΈ͍͢&SMBOH051ͱ ଊ͑ͨ΄͏͕ྑ͍
ؔܕݴޠͱͯ͠ͷ&MJYJS
ಈతܕ͚ͷؔܕݴޠ
None
ؔܕݴޠͱͯ͠ͷ&MJYJS • ୈҰڃؔɺߴ֊ؔ • ύλʔϯϚον • ෆมͳσʔλܕ • ࠶ؼ ඌݺͼग़͠࠷దԽ͋Γ
– GPSXIJMFͳ͍ • GPS͋Δ͚Ͳ܁Γฦ͠ॲཧͰͳ͍
ͳ͍ͷ • Ͱ ͳ͍ – ΦϒδΣΫτࢦ – ੩తܕ͚ – ७ਮؔܕ
෭࡞༻͋Γ – ෦ద༻ΧϦʔԽ – 0QUJPOBMܕ .BZCF • ͋ΔΑ – Ϧετแදه – ԆධՁɺແݶϦετ ˞ݴޠશମͰͳ͍ – Ϟφυ܅ͨͪͷ৺ͷதʹ
ύλʔϯϚον • &MJYJSͷจ๏ͷجૅʹͳͬͯΔػೳ – ؔܕݴޠͰ݁ߏΈΔŋŋŋ)BTLFMMͱ͔ • 4DBMBʹ͋Δ͚Ͳ&MJYJSͰΑΓݴޠσβΠϯʹਂؔ͘Θ͍ͬͯ Δ – JGจͳͲΛΘͳ͍એݴతͳهड़ʹߩݙ
• ͷύλʔϯΛهड़͠ɺͱর߹͢Δ – ύλʔϯͱ͕Ϛονͨ͠ΒɺԿ͕͔͕͠ߦΘΕΔ – ࣮ύλʔϯϚονԋࢉࢠ
ύλʔϯϚον h+p://www.slideshare.net/Joe_noh/elixir-01
ύλʔϯϚον εςʔλείʔυͷ ͱ͖͚͕ͩؔݺΕΔ ͕͜ͷߏΛؚΉͱ͖͚ͩ ݺΕΔɻ·ͨɺߏͷ ͕XFBUIFSมΛଋറ
ύλʔϯϚον ࠶ؼ Ϧετ͕ۭͷͱ͖ ఀࢭ݅ Ϧετͷઌ಄ཁૉ͕@IFBE ΛଋറɺΓ͕UBJMΛଋറ
ύλʔϯϚονͷϢʔεέʔε • มଋറ • σʔλߏͷղ • Ϧετॲཧ X࠶ؼ •
DBTFจ • ύλʔϯຖͷؔఆٛ – ʹΑΔؔͷબ
cŋŋŋύΠϓϥΠϯԋࢉࢠ ؔͷΓΛɺ࣍ͷୈҰҾʹ͢ɻ 'ΠϯεύΠΞΒ͍͠ ؔΛܨ͛ͯॻ͚ͯ ؾ͍͍࣋ͪ
খ͞ͳؔΛύΠϓϥΠϯ Ͱܨ͍͛ͯ͘ͷ͕&MJYJSྲྀ ͳͥ0QUJPOBMܕͱ͔.BZCFϞφυΛ༻ҙ͠ͳ͔ͬͨͷ͔ŋŋŋ
ෆมͳσʔλܕ • σʔλܕෆม – 4USJOH -JTU 5VQMF .BQ )BTI%JDU )BTI4FU
• ཁ͢Δʹഁյతૢ࡞͕ෆՄೳ͚ͬͯͩ • dict2 = Dict.put(dict, :foo, 3) – dict ෆมɺߋ৽͞Εͨ dict2
GPS XIJMF͕ͳ͍ • ࠶ؼΛ͏͔ ඌݺͼग़͠࠷దԽ • ͞ͳ͘ϧʔΫɺ&OVNΛ͑ iex> [1,2,3]
|> Enum.each fn(x) -> IO.puts(x) end 1 2 3 :ok iex> [1,2,3] |> Enum.reduce(0, fn(x, acc) -> x + acc end) 6
Ϧετแදه • )BTLFMMͰ͓ͳ͡Έͷ – [x | x <- xs, x <
p] • &MJYJSͰ – for x <- xs, x < p, do: x ਖ਼͜Εʹؔͯ͠ &SMBOHͦͷ··Ͱྑ͔ͬ ͨͷͰŋŋŋ4DBMBΠϯε ύΠΞ͔ͳ
ϐλΰϥεΛ୳͢ " #$ Λຬͨ͢" # $ͷͷ Λݟ͚ͭΔ
4USFBN • ߹ՄೳͰԆධՁͳ&OVNFSBCMFT – &OVN(SFFEZ – 4USFBN-B[Z • ແݶϦετԆධՁ͕ཉ͍͠ͱ͖͜ Ε
3BOHFΛ4USFBNʹมɺ ύΠϓϥΠϯԋࢉࢠͰ pMUFSͱNBQΛ߹ UBLF ͨ͠ͱ͜ΖͰॳΊͯ ධՁˠ݅ͷΈܭࢉ ԆධՁ
ϑΟϘφονετϦʔϜ 4USFBNVOGPMEΞΩϡϜ Ϩʔλʹܭࢉ݁ՌΛੵΜͰ࠶ ؼతʹؔΛద༻ &OVNUBLF ͨ͠ͱ͜Ζ ͰॳΊͯܭࢉ
ϙϦϞʔϑΟζϜ • ϙϦϞʔϑΟζϜͷ࣮ݱ – +BWBŋŋŋΠϯλϑΣʔεͳͲͷ্ҐͷܕͰ – 3VCZŋŋŋμοΫλϐϯάͰ – )BTLFMM4DBMBŋŋŋଟ૬ܕͰ – &MJYJSŋŋŋϓϩτίϧͰ
ϓϩτίϧ ҟͳΔσʔλܕʹಉ໊͡લ ͷؔΛద༻ɻܕʹԠͯ͡ ৼΔ͍͕มΘΔ
ϓϩτίϧͷྑ͍ར༻ྫ h+p://blog.drewolson.org/building-an-elixir-web-app/
&MJYJSΒ͍͠ίʔυ • ύλʔϯϚονΛੵۃతʹ͏ • ෭࡞༻ՄೳͳΒආ͚Δ • &OVNͷؔΛΈ߹Θͤͯએݴతʹॻ͘ • ύΠϓϥΠϯԋࢉࢠ|> ͍୯Ұͷׂͷখ͞
ͳؔΛܨ͛Δ
&SMBOH051ͱ&MJYJS
&SMBOH7.ͷ্Ͱಈ͘ BEAM (Erlang VM) OTP Elixir
ܰྔϓϩηε • &SMBOH7.ͷ࣮ߦίϯςΩετͷ୯Ґ – 04ͷϓϩηεͰͳ͍ • ϓϩηεϫʔυఔɻܰྔ – ϊʔυͰඦʙઍϓϩηεͱ͔ฏؾͰ͍·͘Δ –
ϓϩηεͰʙͱ͔ͦ͏͍͏ฉ͘
ܰྔϓϩηεͱฒߦ • ܰྔϓϩηε7.ͰεέδϡʔϦϯά͞Εͯ ࣮ߦ͞ΕΔ • 7.εϨουϓʔϧ ͔֬ Ͱ࣮͞Ε͍ͯΔ – ܰྔϓϩηεͰͷฒߦॲཧϚϧνίΞͰΛ͑Δ
ΞΫλʔϞσϧ • ϓϩηεؒ௨৴ϝοηʔδύογϯά – ϓϩηεͷதʹʮϝʔϧϘοΫεʯ • ͦ͜ʹϝοηʔδΛૹΔ TFOE •
ϝοηʔδʹҙͷΛఴՄ – ϓϩηεͦΕΛड৴ͪ SFDFJWF – ඞͣίϐʔ͞ΕΔ ڞ༗͞Εͳ͍ • σʔλΛڞ༗͠ͳ͍㱺ϩοΫ͕͍Βͳ͍
ΞΫλʔϞσϧ
None
051 • ϓϩηεपΓͷඪ४ϥΠϒϥϦϑϨʔϜ ϫʔΫ܈ • &SMBOHͷ࠷େͷࢿ࢈ – ΞΫλʔϞσϧ &SMBOH051ͳͲଞݴ ޠେ͖ͳӨڹΛ༩͍͑ͯΔ •
ྫ4DBMBͷ"LLB
051ϏϔΠϏΞ (FO4FSWFS ܰྔϓϩηεʹύλʔϯ ϏϔΠϏΞ ʹ͔ͬΔ ͚ͩͰαʔόΛ࡞ΕΔɻ ཁϑϨʔϜϫʔΫ
BTZODBXBJUͷཪͰΞ Ϋλʔ͕ॲཧΛฒྻԽ͢ Δ 051ϏϔΠϏΞ 5BTL
4VQFSWJTPS Supervisor use GenServer ࢹ ʮಥવͷࢮʂʯ ϓϩηεࢮΜͩ͠ɺઓུ ʹ߹Θͤͯ࠶ىಈ͠ͱ͘ Θ crash
-FUJUDSBTI • ࣦഊʹඋ͑ͳ͍ɻྫ֎Λั·͑ͳ͍ • 4VQFSWJTPSͰࢹ͓͍ͯͯ͠ɺͦͷ·· ى͜͢ͳΓύϥϝʔλม͑ͯϦτϥΠͤ͞ ΔͳΓŋŋŋ
4VQFSWJTJPO5SFF h+p://qiita.com/naoya@github/items/ad18b49e9ed56a72cab6
ޠΓ͔͕ͨͬͨଟ͕࣌ؒͳ͍ʂ • ܰྔϓϩηεγεςϜͷ৭ΜͳσβΠϯͱ૬ ޮՌΛಇ͔͍ͤͯΔΑ – ύλʔϯϚονͰએݴతʹؔΛબ͢Δ͜ͱͱ-FU JUDSBTI૬ੑ͕ྑ͍Α – ϓϩηεͷΞυϨεಁաੑ͕͋ͬͯɺଞͷϊʔυ ͷϝοηʔδύογϯάҰॹͩΑˠ؆୯ʹεέʔ
ϧ͢ΔΑ – ܰྔϓϩηε୯ҐͰ($͢Δ͔ΒϝϞϦ͍Βͳ͘ ͳͬͨΒϓϩηε͝ͱࣺͯΕྑ͍Α
3FBDUJWF 3FBDUJWF.BOJGFTUP ϦΞΫςΟϒએݴ h+p://www.reac=vemanifesto.org/ja
ΞΫλʔʹΑΔ ϝοηʔδύογϯά
4VQFSWJTJPO5SFF -FUJUDSBTI
ܰྔϓϩηεͷ ΞυϨεಁաੑ
&SMBOHͱͷ૬ޓޓੑ • &SMBOHͱ&MJYJS૬ޓޓ – &SMBOHͷϥΠϒϥϦΛ&MJYJSͰ͑Δ – &MJYJSͷΛ&SMBOHͰ͑Δ
΄͔
.JY )FY • Ϗϧυπʔϧύοέʔδཧ – 3VCZͷ#VOEMFS SVCZHFNT – /PEFKTͷOQN
IDDBXFTPNFFMJYJS • ϥΠϒϥϦͷϦϯΫू
%JBMZ[FS ιʔεʹܕใΛΞϊςʔ γϣϯ͠ͱ͘ͱ ੩తܕνΣοΫͰ͖Δ
ϚΫϩ
&MJYJSೖιʔε ຊޠ • 8FC %#13&44WPM – IUUQHJIZPKQNBHB[JOFXEQSFTTBSDIJWFWPM •
+PF@OPI͞ΜͷεϥΠυू – IUUQXXXTMJEFTIBSFOFU+PF@OPIQSFTFOUBUJPOT • (FUUJOH4UBSUFEͷ༁ – IUUQFMJYJSKBTFOBOFUXPSLTHFUUJOH@TUBSUFEIUNM • 2JJUBr&MJYJS – IUUQTRJJUBDPNUBHTFMJYJS
&MJYJSຊ͓͢͢Ί
ྑ͍͜ͱ͔Γݴ͍·͕ͨ͠ŋŋŋ • ฒߦੑೳ͕ߴ͍ɺԠੑೳ͕ྑ͍ͱݴ͕ͬͨʮܭࢉ͕ ͍ʯͱݴͬͯͳ͍ – 1IPFOJYελοΫ3BJMTΑΓ͍ɺ͚Ͳ – ಈతܕ͚ݴޠͰ͢͠ – ˞ҰԠ)J1&ʹ͢Δͱ͘ͳΔΑ͏
• ؔܕݴޠͱͯͦ͜͠·ͰߴػೳͰͳ͍ • ݸਓతͳ େنӡ༻ͯ͠ͳ͍ͷͰ$POTΛޠΔʹ ݟΓͳ͍ • &MJYJSྲྀߦΔ͔·ͩະ – ϓϩμΫγϣϯೖࣄྫ·ͩ͜Ε͔Β
·ͱΊ • &MJYJS&SMBOH051ͱζο༑ • ಈతܕ͚ͷؔܕݴޠ – ͱɺݴͬͯා͘ͳ͍ – ύλʔϯϚονɺύΠϓϥΠϯԋࢉࢠɺ&OVN 4USFBN
• 051ͰΞΫλʔͳฒߦॲཧ • -FUJUDSBTI