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 次に来る大物Web言語の可能性
Search
kanmo
October 30, 2015
Programming
8
2.8k
Elixir 次に来る大物Web言語の可能性
#cmdevio モバイルバックエンド勉強会のスライド
kanmo
October 30, 2015
Tweet
Share
More Decks by kanmo
See All by kanmo
Keep Phoenix App Productivity
kanmo
2
1.1k
Elixir/OTPを使った分散アプリケーション
kanmo
4
2.2k
ExAws
kanmo
1
510
Real Time Web Application with Elixir and Phoenix
kanmo
1
1.4k
Other Decks in Programming
See All in Programming
qmuntal/stateless のススメ
sgash708
0
120
Vaporモードを大規模サービスに最速導入して学びを共有する
kazukishimamoto
4
4.3k
外部システム連携先が10を超えるシステムでのアーキテクチャ設計・実装事例
kiwasaki
1
230
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
840
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
230
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
110
PagerDuty を軸にした On-Call 構築と運用課題の解決 / PagerDuty Japan Community Meetup 4
horimislime
1
110
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
2.7k
Server Driven Compose With Firebase
skydoves
0
400
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
1
290
Vue.js学習の振り返り
hiro_xre
2
130
デプロイを任されたので、教わった通りにデプロイしたら障害になった件 ~俺のやらかしを越えてゆけ~
techouse
52
32k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
9
680
Code Reviewing Like a Champion
maltzj
519
39k
Ruby is Unlike a Banana
tanoku
96
11k
What's new in Ruby 2.0
geeforr
342
31k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
32
2.4k
Writing Fast Ruby
sferik
626
61k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
We Have a Design System, Now What?
morganepeng
50
7.2k
Thoughts on Productivity
jonyablonski
67
4.3k
Designing for humans not robots
tammielis
249
25k
Transcript
&MJYJS ࣍ʹདྷΔେ8FCݴޠ&MJYJSͷՄೳੑ !LBONP@BL DMBTTNFUIPEגࣜձࣾ DNEFWJPϞόΠϧόοΫΤϯυษڧձ
ࣗݾհ w ᇙ໌लʢ͔Μ͖͋ͻͰʣɺ3VCZͱ&NBDT͖ w %*෦ʢσʔλΠϯςάϨʔγϣϯ෦ʣ w ͓ࣄ3BJMTʴ"OHVMBSͷαʔόαΠυ w 5XJUUFS!LBONP@BL
&MJYJSͬͯʁ w +PTF7BMJN 3BJMTίϛολͷਓ ͕࡞ͬͨݴޠ w &SMBOHͷ7.্Ͱಈ͘3VCZͬΆ͍ؔܕݴޠ w 3VCZͷੜ࢈ੑͱ&SMBOHͷฒߦੑΛ͍࣋ͬͯΔ w
.JYͱ͍͏ϞμϯͳύοέʔδϚωʔδϟ͕͋Δ ʢ͜Εॏཁʣ
࠷ۙͷ8FC w $, ಉ࣌ʹҎ্ͷΫϥΠΞϯτ͕ଓ͢Δͱ)8ͷੑೳ Γ͍ͯͯ04ɺιϑτΣΞͷͰॲཧ͕ഁ͢Δ͜ͱ w ϜʔΞͷ๏ଇͷݶք $16ΫϩοΫϨʔτͷ͕ࢭ·ͬͨɻΘΓʹϚϧνίΞ w ϦΞϧλΠϜ8&#
αʔόɺΫϥΠΞϯτ͕ৗ࣌ଓɻ௨৴සߴ͍
w ҰͭͷίωΫγϣϯ͕Ϋϥογϡ͔ͨ͠Βͱ͍ͬ ͯΞϓϦέʔγϣϯશମ͕Ϋϥογϡ͢Δͷ ࠔΔ w /PEF+4$,ղܾͰ͖Δ͕োੑ͕ऑ͍ ʢγϯάϧεϨουʣ w ϚϧνεϨουPSΠϕϯτۦಈͷબɻɻ ͲͬͪͭΒ͍
&MJYJS͜ͷΜͷΛ ղܾ͢Δͷʹ͍͍ͯΔ
&MJYJSͷੌ͍ͱ͜Ζ &MJYJSͷϥϯλΠϜ
ܰྔϓϩηε w 04ͷϓϩηεεϨουͰͳ͘(SFFOεϨουɻ 04Ͱͳ͘7.ͰεέδϡʔϦϯά͞ΕΔ w Ұͭͷ5$1ίωΫγϣϯʹҰͭͷܰྔϓϩηεΛ ׂΓͯΔ w ܰྔϓϩηεϫʔυ ϫʔυόΠτ
w ܰྔϓϩηεຖʹ($Λߦ͏ ɹɹ4UPQ5IF8PSMEى͖ͳ͍
ΞΫλʔ w ܰྔϓϩηεؒͷσʔλڞ༗ϝοηʔδ ύογϯά w 4IBSFE/PUIJOHͷϝϞϦϞσϧ w ίϐʔ͞ΕΔϝϞϦڞ༗ͷΈ͕ ෆཁ w
ͦΕ͋ͬͯܰྔ
&MJYJS&SMBOHͱ͍͏ݴޠͷ7.্ Ͱಈ͘ &MJYJS &SMBOH7. #&". ϥΠϒϥϦʢ051ʣ
&SMBOH w ࠒɺεΣʔσϯͷ&SJDTTPOͰ։ൃ͞Ε ͨɻ৴པੑ͕ཁٻ͞ΕΔిަػͷͨΊʹઃ ܭ͞Εͨݴޠ w ΑΓ৴པੑΛॏࢹ w ฒߦॲཧೳྗ͕ඇৗʹߴ͍
ಋೖྫ w 8IBUT"11 ʹ'BDFCPPL͕ങऩ ϐʔΫ࣌ʹαʔόͰສίωΫγϣϯΛ࣮ݱ w $IFGʢαʔόϓϩϏδϣχϯάιϑτʣ αʔόͰͷϊʔυΛཧ͍ͯ͠Δ w
-*/&ɺυϫϯΰɺָఱͰҰ෦ͰΘΕ͍ͯΔ Β͍͠
&SMBOHͷฒߦੑɺোੑཉ͍͠ ͚ͩͲɺจ๏͕ਏ͍ ݹ͍ݴޠͩ͠ ͏গ͠ॻ͖͚͢Εɻɻ
r.BU[ͷ#MPH͔Β l&SMBOH͖͢ݴޠ͕ͩɺ ͓ͦΒ͘কདྷͷଞݴޠʹӨڹΛ༩͑Δ ૅʹͳΔɻz
r.BU[ͷ#MPH͔Β l&SMBOH͖͢ݴޠ͕ͩɺ ͓ͦΒ͘কདྷͷଞݴޠʹӨڹΛ༩͑Δ ૅʹͳΔɻz &MJYJSWSFMFBTF
&MJYJSݴޠͱͯ͠ͷಛ
3VCZ෩ຯͷؔܕݴޠ w ಈతܕ͚ͷؔܕݴޠ w ύλʔϯϚον w ύΠϓ w JNNVUBCMFEBUB ฒߦॲཧʹ͍͍ͯΔ
w ԆධՁ w ແݶετϦʔϜ w Ϧετแදه w ࠶ؼ GPSɺXIJMFແ͍
&MJYJSͷίʔυαϯϓϧ EFGNPEVMF)BUFOB#PPLNBSLTEP EFGGFUDI@FOUSZ VSM EP )551PJTPOTUBSU )551PJTPOHFU IUUQCIBUFOBOFKQFOUSZMJTUKTPO TPSUDPVOUVSMVSM
cEFDPEF@SFTQPOTF cFYUSBDU@FOUSZ cTPSU@EFTDFOEJOH@BOE@GPSNBU FOE EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ c1PJTPOEFDPEF FOE EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF@@@ CPEZCPEZ^ EP FOE
EFGFYUSBDU@FOUSZ JUFNT EPFYUSBDU@FOUSZ JUFNT <> EFGQFYUSBDU@FOUSZ <> SFT EPSFT
EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT> FOE EFGTPSU@EFTDFOEJOH@BOE@GPSNBU MJTU@PG@FOUSJFT EP MJTU@PG@FOUSJFT c&OVNTPSU GO\@ DPVOU^ \@ DPVOU^4USJOHUP@JOUFHFS DPVOU 4USJOHUP@JOUFHFS DPVOU FOE c&OVNNBQ GO \UJUMF DPVOU^ \UJUMF^\DPVOU^݅FOE FOE FOE )BUFOB#PPLNBSLTGFUDI@FOUSZ IUUQEFWDMBTTNFUIPEKQ c&OVNFBDIGO FOUSZ *0JOTQFDUFOUSZFOE
݁Ռ &MJYJSͱؔͳ͍͚Ͳ DMBTTNFUIPEͷͯͿใ ʲ൪֎ฤʳ"OESPJEͷരΤϛϡϨʔλڥΛߏங͢ΔʛΫ݅ ʲ"84ʳඇΤϯδχΞͷͨΊͷॳΊͯͷ"NB[PO8FC4FSWJDFTࢿྉΛ ݅ .BD#PPL"JSͷಈ࡞͕ॏ͘ͳͬͨͷͰϝϯςφϯεͨ͠Βܰ͘ͳ݅ Α͔͘ΔʂJ04ΞϓϦͷϦϦʔεखॱͷ·ͱΊʛ%FWFMPQFST݅ ͜Ε͔Β"84Λ࢝ΊΔਓҰಡ͖͢ʮ"84ӡ༻νΣοΫϦε݅
J04ಛूʛ%FWFMPQFST*0݅ Ϣχοτςετʹ·ͭΘΔͷצҧ͍ʛ%FWFMPQFST*0݅ )5.-º$44ºK2VFSZΛਅ໘ʹษڧrύϥϥοΫεΤϑΣ݅ +BWB4DSJQUͷ.7$ϑϨʔϜϫʔΫͱؒͨͪʛ$MBTTNFUIPEEFW ݅ "OESPJEҊ݅ͷݟੵΓʛ$MBTTNFUIPEEFW ݅
ύΠϓϥΠϯԋࢉࢠ c&OVNNBQ GO Y Y YFOE
c&OVNpMUFS GO Y YFOE c*0JOTQFDU < > ؔͷฦ٫Λ࣍ͷ ؔͷୈҰҾʹ͢
ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ DMBTTNFUIPEͱग़ྗ͢Δ
ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ DMBTTNFUIPEͱग़ྗ͢Δ ӈลͷ.BQͷLFZɿOBNF
ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ DMBTTNFUIPEͱग़ྗ͢Δ ӈลͷ.BQͷLFZɿOBNF ࠨลͷ.BQͷLFZɿOBNF
ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ DMBTTNFUIPEͱग़ྗ͢Δ Ұகͨ͠ ߹มDPNQBOZʹ zDMBTTNFUIPEzΛଋറ
ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM EFGTJ[F <>
EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU> ཁૉ͕ฦ٫͞ΕΔ
ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM EFGTJ[F <>
EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU> ཁૉ͕ฦ٫͞ΕΔ IFBEʹϦετͷઌ಄ཁૉ z&MJYJSz ͕ଋറ
ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM EFGTJ[F <>
EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU> ཁૉ͕ฦ٫͞ΕΔ UBJMʹΓͷཁૉ z3VCZz z+BWB4DSJQUz ͕ଋറ
ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM EFGTJ[F <>
EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU> ཁૉ͕ฦ٫͞ΕΔ ΛՃࢉͯ͠࠶ؼݺͼग़͠
ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM EFGTJ[F <>
EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU> ཁૉ͕ฦ٫͞ΕΔ ཁૉ͕ۭʹͳͬͨΒऴྃ
࠷ॳͷαϯϓϧͷઆ໌ʢύΠϓϥΠϯԋࢉࢠʣ EFGNPEVMF)BUFOB#PPLNBSLTEP EFGGFUDI@FOUSZ EP )551PJTPOHFU lIUUQCIBUFOBOFKQFOUSZMJTUKTPO TPSUDPVOUVSMIUUQEFWDMBTTNFUIPEKQz cEFDPEF@SFTQPOTF cFYUSBDU@FOUSZ
cTPSU@EFTDFOEJOH@BOE@GPSNBU FOE ͯͳϒοΫϚʔΫ"1*Λୟ͍ͯαΠτͷใΛऔಘ औಘ݁ՌΛσίʔυ +40/ʹσίʔυ มͨ͠+40/͔ΒλΠτϧɺϒοΫϚʔΫΛநग़ ࠷ޙʹιʔτͱจࣈྻܗ
࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ
c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT> FOE
࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ
c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT> FOE TUBUVT@DPEFͷ߹ͷ Έ࣮ߦ͢Δ
࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ
c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT> FOE -JTUઌ಄ཁૉͷUJUMFͱDPVOU ͷΈมʹଋറ͢Δ
࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ
c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT> FOE ઌ಄ཁૉΛ SFTʹՃɺ-JTUͷΓཁૉΛҾʹࢦ ఆͯ͠࠶ؼͰݺͼग़͢
ແݶετϦʔϜ 4USFBNVOGPME \ ^ GO\G G^\G \G G G^^FOE
c&OVNUBLF c*0JOTQFDU < > *0QVUT'JMFTUSFBN VTSTIBSFEJDUXPSET c&OVNNBY@CZ 4USJOHMFOHUI &OVNUBLF Ͱ͡Ίͯܭࢉ Λ࣮ߦ͢Δ &OVNNBY@CZ 4USJOHMFOHUI Ͱ͡ΊͯܭࢉΛ࣮ߦ͢Δ
Ϧετแදه GPSY EPY Y <
> GPSY Y Y EPY Y < > c&OVNNBQ GO Y Y YFOE c&OVNpMUFS GO Y YFOE ύΠϓϥΠϯԋࢉࢠͷαϯϓϧ ͱಉ݁͡Ռ ύΠϓϥΠϯԋࢉࢠͷαϯϓϧ
&MJYJSͷϓϩάϥϛϯάελΠϧ w "1*ύλʔϯϚον͋Γ͖ͷσβΠϯ w ؔͷฦ٫ΛύλʔϯϚονͰड͚औΕΔΑ͏ʹσβΠϯ w ύΠϓʢcʣΛ͍খ͞ͳؔΛͭͳ͛ͯॲཧ Λ࡞Δ w ෭࡞༻ආ͚Δ
ࢄϓϩάϥϛϯά
w ΞΫλʔϞσϧ w ܰྔϓϩηεؒͷϝοηʔδύογϯά w 051 0QFO5FMFDPN1MBUGPSN w ܰྔϓϩηεͷ࣮Λॿ͚Δඪ४ϥΠϒϥϦ
&SMBOHͷࢿ࢈ w 4VQFSWJTPS w ଞϓϩηεͷࢹ͠ҟৗऴྃΛݕͨ͠Βϓϩηεͷ࠶ىಈ ઓུʹै্ཱ͍ͪ͛͢
&MJYJSͷΤϥʔઓུ w ྫ֎ॲཧΛ͠ͳ͍-FU*U$SBTI w ઍͷϓϩηεΛىಈ͍ͤͯ͞ΔͷͰྫ֎Λϋϯυϧ͠ͳͯ͘ ΞϓϦέʔγϣϯશମ͕Ϋϥογϡ͠ͳ͍Α͏ʹͳ͍ͬͯΔ w ͦͷΘΓܰྔϓϩηεͷ࠶ىಈઓུΛઃఆ͢Δ w POF@GPS@POFɿམͪͨϓϩηε͚ͩ࠶ىಈ
w POF@GPS@BMMɿશͯͷࢠϓϩηεΛ࠶ىಈ w ଞʹ͋Δ
4VQFSWJTJPO5SFF
ิ &MJYJS0O3BJMTͳ '8͋Δ
·ͱΊ w $16ॲཧ͘ͳ͍͕োੑʹ༏Ε͍ͯΔ w ฒߦॲཧೳྗطଘݴޠͰτοϓΫϥε w ಈతܕ͚ͬͯ͜ͱΛͲ͏ड͚ࢭΊΔ͔ w ·ͩಋೖࣄྫগͳ͍ w
ϥΠϒϥϦ·ͩগͳ͍ɺσόοΨ·ͩऑ͍
ൺֱ͞ΕΔݴޠ4DBMBɺ(P ͔ &MJYJS (P 4DBMB ฒߦॲཧϞσϧ "DUPS $41 "DUPS Τϥʔઓུ
-FU*U$SBTI %FGFOTJWF 1SPHSBNNJO H -FU*U$SBTI ݴޠͷྨ ؔܕ खଓ͖ܕ ؔܕ ܕ ಈత ੩త ੩త
ײ w ฒߦॲཧೳྗͷͨΊ͚ͩʹɺָ͘͠ͳ͍ϓϩά ϥϛϯάݴޠ͍ͨ͘ͳ͔͕ͬͨ&MJYJSฒߦ ॲཧʴ։ൃੜ࢈ੑ͕͋Δ ָ͍͠ w ύΠϓϥΠϯԋࢉࢠɺύλʔϯϚον࣮༻త w
ࠓޙ41"ΞϓϦέʔγϣϯ͕ओྲྀʹͳͬͨΒ"1* αʔόͱͯ͠ਓؾ͕ग़ͦ͏