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.3k
ExAws
kanmo
1
530
Real Time Web Application with Elixir and Phoenix
kanmo
1
1.4k
Other Decks in Programming
See All in Programming
テスト自動化失敗から再挑戦しチームにオーナーシップを委譲した話/STAC2024 macho
ma_cho29
1
1.3k
Spatial Rendering for Apple Vision Pro
warrenm
0
110
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
6
1.5k
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
情報漏洩させないための設計
kubotak
3
340
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
260
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
290
Kaigi on Railsに初参加したら、その日にLT登壇が決定した件について
tama50505
0
100
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
340
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
Thoughts on Productivity
jonyablonski
67
4.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Side Projects
sachag
452
42k
A better future with KSS
kneath
238
17k
Designing for humans not robots
tammielis
250
25k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Navigating Team Friction
lara
183
15k
Writing Fast Ruby
sferik
628
61k
How GitHub (no longer) Works
holman
311
140k
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* αʔόͱͯ͠ਓؾ͕ग़ͦ͏