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
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
21
6.6k
Functional TypeScript
naoya
16
6.4k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
74
36k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.3k
20230227-engineer-type-talk.pdf
naoya
91
78k
関数型プログラミングと型システムのメンタルモデル
naoya
62
110k
TypeScript による GraphQL バックエンド開発
naoya
29
36k
フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発
naoya
67
24k
「問題から目を背けず取り組む」 一休の開発チームが6年間で学んだこと
naoya
144
60k
Other Decks in Technology
See All in Technology
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
280
NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ
yumaichikawa
1
220
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
650
serverless team topology
_kensh
3
190
CREが作る自己解決サイクルSlackワークフローに組み込んだAIによる社内ヘルプデスク改革 #cre_meetup
bengo4com
0
300
AI時代の開発を加速する組織づくり - ブログでは書けなかったリアル
hiro8ma
1
280
「タコピーの原罪」から学ぶ間違った”支援” / the bad support of Takopii
piyonakajima
0
130
AI-Readyを目指した非構造化データのメダリオンアーキテクチャ
r_miura
1
290
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
120
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
3
600
生成AI時代のPythonセキュリティとガバナンス
abenben
0
120
「REALITY」3Dアバターシステムの7年分の拡張の歴史について
gree_tech
PRO
0
130
Featured
See All Featured
It's Worth the Effort
3n
187
28k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Unsuck your backbone
ammeep
671
58k
Scaling GitHub
holman
463
140k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Six Lessons from altMBA
skipperchong
29
4k
Optimizing for Happiness
mojombo
379
70k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
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