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
20
6.2k
Functional TypeScript
naoya
15
6.4k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
72
35k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.2k
20230227-engineer-type-talk.pdf
naoya
89
77k
関数型プログラミングと型システムのメンタルモデル
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
react-callを使ってダイヤログをいろんなとこで再利用しよう!
shinaps
2
260
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
390
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
380
2025/09/16 仕様駆動開発とAI-DLCが導くAI駆動開発の新フェーズ
masahiro_okamura
0
120
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
880
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
480
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
RailsConf 2023
tenderlove
30
1.2k
Documentation Writing (for coders)
carmenintech
74
5k
Statistics for Hackers
jakevdp
799
220k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Balancing Empowerment & Direction
lara
3
620
A Modern Web Designer's Workflow
chriscoyier
696
190k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.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