Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Elixir
Search
Naoya Ito
October 09, 2015
Technology
3.1k
15
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Elixir
Kaizen Platform, Inc の社内勉強会での資料です。基本的には以前発表した資料の切り貼りです
Naoya Ito
October 09, 2015
More Decks by Naoya Ito
See All by Naoya Ito
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
4.3k
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
13
4.7k
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
21
8k
Functional TypeScript
naoya
19
6.9k
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
77
38k
シェルの履歴とイクンリメンタル検索を使う
naoya
16
6.8k
20230227-engineer-type-talk.pdf
naoya
91
87k
関数型プログラミングと型システムのメンタルモデル
naoya
63
110k
TypeScript による GraphQL バックエンド開発
naoya
29
38k
Other Decks in Technology
See All in Technology
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
940
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
350
JSONataとAWS Step Functionsで目指すRuntimelessな世界
mu7889yoon
0
120
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
230
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
110
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
640
SREは、MCPとAutopilotをこう使え!
kazumax55
3
870
What the customer really needed
kawaguti
PRO
3
200
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
130
CLIライブラリ開発を支える技術
htnabe
0
120
品質と信頼性を地続きにする
grimoh
0
700
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.7k
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Product Roadmaps are Hard
iamctodd
55
13k
Un-Boring Meetings
codingconduct
0
420
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Tell your own story through comics
letsgokoyo
1
1.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The SEO Collaboration Effect
kristinabergwall1
1
570
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
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