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
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
4
250
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
330
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
useSyncExternalStoreを使いまくる
ssssota
6
1k
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
200
103 Early Hints
sugi_0000
1
230
ドメインイベント増えすぎ問題
h0r15h0
1
260
命名をリントする
chiroruxx
1
390
Go の GC の不得意な部分を克服したい
taiyow
2
770
From Translations to Multi Dimension Entities
alexanderschranz
2
130
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
The Invisible Side of Design
smashingmag
298
50k
The Language of Interfaces
destraynor
154
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
32
2.7k
Building Your Own Lightsaber
phodgson
103
6.1k
Designing Experiences People Love
moore
138
23k
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* αʔόͱͯ͠ਓؾ͕ग़ͦ͏