$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RxJS と Netflix から学ぶリアクティブプログラミング
Search
Masayoshi Tokumoto
November 07, 2021
Technology
0
44
RxJS と Netflix から学ぶリアクティブプログラミング
Masayoshi Tokumoto
November 07, 2021
Tweet
Share
More Decks by Masayoshi Tokumoto
See All by Masayoshi Tokumoto
プロダクト・人・チームをいい感じにするためのシステム思考
sasumasa
0
60
GraphQL を完全に理解する
sasumasa
0
39
Stimulus × Jest × Direct Upload × Image Fluxで カオスなJS環境と画像アップロード機能を改善しつつユーザーの投稿率を上げた話
sasumasa
1
370
キャパを超えた大型プロジェクトから学んだこと
sasumasa
0
1.4k
RailsエンジニアがStimulus + 生JSだけで約半年のプロジェクトを終えた今思うこと
sasumasa
0
340
IKUSEI on Rails
sasumasa
2
1.9k
文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02
sasumasa
9
19k
Other Decks in Technology
See All in Technology
AIにおける自由の追求
shujisado
2
430
Kill the Vibe?Architecture in the age of AI
stoth
1
150
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
300
AI エージェント活用のベストプラクティスと今後の課題
asei
2
440
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
38
20k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
15k
MAP-7thplaceSolution
yukichi0403
2
230
段階的に進める、 挫折しない自宅サーバ入門
yu_kod
5
2.1k
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
520
"なるべくスケジューリングしない" を実現する "PreferNoSchedule" taint
superbrothers
0
130
あなたの知らないDateのひみつ / The Secret of "Date" You Haven't known #tqrk16
expajp
0
110
Digital omtanke på Internetdagarna 2025
axbom
PRO
0
160
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
4 Signs Your Business is Dying
shpigford
186
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
!TBTVNBTBY 3Y+4ͱ/FUGMJY͔ΒֶͿ ϦΞΫςΟϒϓϩάϥϛϯά
͢͜ͱ w ϦΞΫςΟϒϓϩάϥϛϯάͱ w 3Y+4ͱ w ϦΞΫςΟϒϓϩάϥϛϯάʹର͢Δ w /FU fl
JY͕࠾༻ͨ͠ཧ༝ w 3Y+4ͷ w Ͳ͏͍͏࣌ʹ࠾༻͖͔͢ ˞ࣄͰগ͚ͩͬͨ͠ΓɺௐͨΓͨ͠ݱ࣌ͰͷݟղʢਪଌࠐΈʣͱͳΓ·͢
ϦΞΫςΟϒϓϩάϥϛϯά w ෳࡶͳඇಉظॲཧΛ؆ܿʹɺએݴతʹॻ͚Δϓϩάϥϛϯάͷύ ϥμΠϜͷͭ w ݫີʮؔܕʯϦΞΫςΟϒϓϩάϥϛϯάͱ͔͋ΔΒ͍͚͠ͲͱΓ͋͑ͣ ࠓճ·ͱΊ·͢ w ࠓճΛ͢Δͷ3FBDUJWF9ʹ͍ͭͯͰ͢ w
ϢʔεέʔεʹΑͬͯύϑΥʔϚϯε্͢Δ w ࣌มʢ࣌ؒΛ௨ͯ͠มΘΓଓ͚ΔʣͷϋϯυϦϯά͕ಘҙ w ਖ਼֬ʹʮมΘΓଓ͚ΔͷʯͷϋϯυϦϯάʹڧΈ͕͋Δͱࢥͬͯ ·͢
3FBDUJWF9 3FBDUJWF9JTBDPNCJOBUJPOPGUIFCFTUJEFBTGSPNUIF 0CTFSWFSQBUUFSO UIF*UFSBUPSQBUUFSO BOEGVODUJPOBM QSPHSBNNJOH .JDSPTPGUͷ3Y/&5͔Β࢝·Γɺ͍ΖΜͳݴޠʹQPSU͕͋Δ IUUQTSFBDUJWFYJPJOUSPIUNM
3FBDUJWF9
3FBDUJWF9
3Y+4 w 3FBDUJWF9ͷ+4QPSU w ΠϕϯτΛίϨΫγϣϯͱͯ͠ ѻ͏ w Πϕϯτͷू߹ΛPQFSBUPSTͰ ૢ࡞͢Δ ˠએݴతɾ؆ܿʹॻ͚Δ
w ෳͷPQFSBUPSΛͬͯશ ͯͷཁૉΛࠪ͠ͳ͍ w "KBYͷΩϟϯηϧ͕Ͱ͖Δ ˠޮతʹॲཧͰ͖Δ
ඇಉظॲཧͷ͠͞ /FU fl JYͷQMBZؔͷαϯϓϧ IUUQTXXXZPVUVCFDPNXBUDI W'";+TYDZL1T
ඇಉظॲཧͷ͠͞ $BMMCBDL)FMM༨ͳ4UBUFͷ૿Ճ w DBMMCBDLͱUSZ'JOJTIͱ͍͏ ͭͷίʔϧόοΫΛݺͼग़ͨ͢ ΊʹTUBUFͰUSBDL͠ଓ͚Δ w ෳࡶʹͳΔͱTUBUFΛਖ਼͘͠ ཧ͢Δඞཁ͕͋ΔͨΊεέʔϧ ͮ͠Β͘ͳΔ
ඇಉظॲཧͷ͠͞ TZOD BTZODͷΤϥʔϋϯυϦϯά ඇಉظॲཧʢBVUIPSJ[F.PWJFʣͷ ॲཧޙʹΤϥʔϋϯυϦϯάΛ͢ ΔͨΊʹΤϥʔͷঢ়ଶΛίʔϧό οΫͱ͍ͯͯ͠͠Δ
ඇಉظॲཧͷ͠͞ ϝϞϦϦʔΫͷ᠘ SBDFDPOEJUJPO w DBODFM#VUUPOͷΠϕϯτొ ΛVOTVCTDSJCFͰ͖͍ͯͳ͍ w ෳͷඇಉظॲཧΛಉ࣌ʹߦͳ ͬͨ߹SBDFDPOEJUJPO͕
ൃੜ͢Δ ී௨ͷ%0.Ͱ͋ΕͦΕ͕ফ͑Ε SFNPWF͞ΕΔͬΆ͍͕ɺ3FBDU7VF ͰSFNPWFΛҙࣝͨ͠΄͏͕͍͍Β͍͠
એݴత͔ͭ؆ܿʹॻ͚Δ
એݴత͔ͭ؆ܿʹॻ͚Δ 3FBDUJWF9ͷύϫʔ w ֤ΠϕϯτΛҰ࿈ͷίʔϧόοΫ Ͱͳ͘σʔλͷίϨΫγϣϯͱ ͯ͠ϞσϧԽ w ϝϞϦͷίϨΫγϣϯΛม͢ Δͷͱ΄΅ಉ͡ํ๏ͰΠϕϯτΛ ม
w ΠϕϯτͷγʔέϯεɺϑΟϧλ Ϧϯάɺ͓Αͼมʹ༻Ͱ͖Δ 42-ͷΑ͏ͳΫΤϦݴޠΛ։ൃ ऀʹఏڙ w ಉظΤϥʔॲཧͱಉ༷ͷํ๏Ͱඇ ಉظΤϥʔΛ͓Αͼॲཧ͢Δ
ΠϕϯτΛίϨΫγϣϯͱͯ͠ѻ͏ Α͋͘Δએݴతͳίʔυ
ΠϕϯτΛίϨΫγϣϯͱͯ͠ѻ͏ ͠υϥοάυϩοϓͰը૾ͷҐஔΛม͑ΔΠϕϯτΛ͖ͬ͞ͷ ίʔυͱ΄΅ಉ͡Α͏ʹએݴతʹ࣮͢Δͱͨ͠Βʁ IUUQTEFWFMPQFSNP[JMMBPSHKBEPDT8FC"1*&MFNFOU NPVTFNPWF@FWFOU
ΠϕϯτΛίϨΫγϣϯͱͯ͠ѻ͏ Α͋͘Δએݴతͳίʔυ
ΠϕϯτΛίϨΫγϣϯͱͯ͠ѻ͏ 0CTFSWBCMFΛ͏ͱ͜͏ॻ͚Δ
ޮతʹॲཧͰ͖Δ ྻͷίϨΫγϣϯͷΑ͋͘Δૢ࡞ IUUQTTLJMMTNBUUFSDPNTLJMMTDBTUTMPOEPOKBWBTDSJQUDPNNVOJUZ
ޮతʹॲཧͰ͖Δ 0CTFSWBCMFTͷૢ࡞
ޮతʹॲཧͰ͖Δ "KBYͷΩϟϯηϧ w 1SPNJTF"KBYΛΩϟϯηϧʢBCPSUʣͰ͖ͳ͍ w 0CTFSWBCMF"KBYΛBCPSUͰ͖Δ
ϦΞΫςΟϒϓϩάϥϛϯάʹର͢Δ w هࣄʮϦΞΫςΟϒϓϩάϥϛϯάͱԿͩͬͨͷ͔ʯ w ׳Εͳ͍ॻ͖ํ͕ଟͯ͘ਏ͍ɾΘ͔ΓͮΒ͍ ˠ͜Ε3Y+4࡞ऀೝΊ͍ͯΔʢֶशۂઢ͕͋Δʣ w Ծ%0.ͱ૬ੑ͕ѱ͍
ˠهࣄͰڍ͛ΒΕ͍ͯΔ3FBDU)PPLTʢVTF0CTFSWBCMFʣ ͕Ͱ͖ͯղܾࡁ w ίʔυΛൺֱ͍ͯ͠Δ͕ࢀߟهࣄͷதͷΓऔΒΕͨʮҰ࣌ʯͷʮ έʔεʯ͚ͩͰஅ͍ͯ͠Δ w 3YϦΞΫςΟϒϓϩάϥϛϯάʮෳࡶͳඇಉظॲཧΛίϯϙʔβϒϧʹղܾ Ͱ͖Δʯͷ͕Ϧ w υϥοάυϩοϓʹΑΔΠϕϯτɾηϯαʔ͔ΒσʔλΛܧଓతʹड͚औΔέ ʔεͰߟ͑ͨΓɺཁ͕݅มΘͬͨࡍͷ֦ுੑͳͲߟྀʹೖͬͯͳ͍
/FUGMJYͱ3Y w /FU fl JYϑϩϯτΤϯυͱ"1*྆ํʹ3YΛར༻͍ͯ͠Δ ʢ3Y+4ɾ3Y/&5ɾ3Y+BWBʣ w ͪͳΈʹ3Y+4ͷϦʔυίϛολʔSFEVYPCTFSWBCMFͷ࡞ ऀ/FU
fl JYͷΤϯδχΞ IUUQTOFU fl JYUFDICMPHDPNPQUJNJ[JOHUIFOFU fl JYBQJDBDDG IUUQTOFU fl JYUFDICMPHDPNSFBDUJWFQSPHSBNNJOHBUOFU fl JYCEE
/FUGMJYͱ3Y #FGPSF w ϑϩϯτΤϯυ͔Βޒ݄Ӎʹඇ ಉظॲཧͷϦΫΤετΛ͛Δ w /FUXPSL-BUFODZ͕ύϑΥʔ ϚϯεΛԼ͛Δ
/FUGMJYͱ3Y "GUFS w ϦΫΤετΛ·ͱΊΔ w "1*ଆͰඇಉظɾฒྻॲཧΛߦ ͏
/FUGMJYͱ3Y ετϦʔϛϯάͷඇಉظॲཧ ʮҎલɺөըυϥϚͳͲ࡞୯ҐͰΤϯίʔσΟϯάΛ͍ͯ͠ ·͕ͨ͠ɺϑϨʔϜ୯ҐͰΤϯίʔσΟϯά͢Δ͜ͱͰɺϏοτ Ϩʔτ࣌ʹ͓͚Δը࣭Λ֬อ͍ͯ͠·͢ɻʯ IUUQTKBQBODOFUDPNBSUJDMF
/FUGMJYͱ3Y ւ֎υϥϚʮ46*54ʯͷϓϨϏϡʔΛදࣔͨ͠߹ w ϦετʹΧʔιϧΛͯΔͱɺ ͜Μͳײ͡ͰϦΫΤετ͕Ίͪ Όͪ͘ΌඈͿ w ࣈSBOHFͱ͍͏ΫΤϦύϥ ϝʔλʔͳͷͰϑϨʔϜ୯ҐͰ औಘͯ͠ΔͬΆ͍
w ͕࣌ؒܦͭͱYIS͕૿͑Δ w ϓϨΠ࣌ؒΛऔಘ͓͍ͯ͠ ͯඞཁʹԠͯ͡ඇಉظॲཧΛ͠ ͯͦ͏
/FUGMJYͱ3Y /FU fl JYͷඇಉظॲཧ·ͱΊ w ඇಉظɾฒྻͷ3Y+BWB"1*͔ΒͷϨεϙϯεΛਵ࣌ड͚औΔ w ࣌ؒͷܦաʹԠͯ͡ෳͷϦΫΤετʹ͚ͯετϦʔϛϯάσ ʔλΛऔಘ͍ͯ͠Δ w
σʔλऔಘͷλΠϛϯά͕ଟ͍ʢϖʔδΛ։͍ͨ࣌ʹྲྀΕΔϓϨ Ϗϡʔɾϗόʔ࣌ͷϓϨϏϡʔɾಈըͷຊฤFUDʣ w Ξχϝʔγϣϯ͕ଟ͍ʢϗόʔ࣌ɾΤϐιʔυؒͷදࣔFUDʣ w ͦͯͦ͠ΕΒશ͕ͯΩϟϯηϧ͢Δ͜ͱ͋Δ
/FUGMJYͱ3Y ϏδωεͷنɾԾઆ ࣌Ͱձһԯສਓɺৗʹສ314 ʢ3FRVFTU1FS4FDPOEʣͷΞΫηεΛड͚͍ͯΔϓϩμΫτ ͰϑϩϯτΤϯυɾαʔόʔαΠυڞʹ͍͍69Λఏڙ͢Δͨ Ίʹ3FBDUJWF9Λ׆༻͍ͯ͠ΔͷͰʁ IUUQTEFWDMBTTNFUIPEKQBSUJDMFTOGYSFQPSU
3Y+4 3FBDUJWF9 ͷ w ଟ͘ͷPQFSBUPSTʢछྨʂ🤢ʣ w ֶशۂઢ͕͋Δʢ࠷ॳਏ͍ʣ w গͳ͘ͱຊͰ͋·Γϝδϟʔ͡Όͳ͍ͷͰɺ3YͷQPSU Λར༻ͨ͠ܦݧͷ͋ΔΤϯδχΞͷ࠾༻ɾΩϟονΞοϓͷ໘Ͱ
ίετ͕͔͔Γͦ͏
Ͳ͏͍͏࣌ʹ࠾༻͖͔͢ w ͿͬͪΌ͚ͲͷΞϓϦέʔγϣϯʹ࠾༻͍͍ͯ͠Μͩͱࢥ͏ w ࣮ࡍ"OHVMBSඇಉظॲཧͰ0CTFSWBCMF 3Y+4 Λ࠾༻͍ͯ͠Δ w ߴසʹมΘΔ࣌มΛѻ͏߹ʹͦͷύϫʔ͕ΑΓൃش͞ΕΔ ͔ͳͱࢥ͍ͬͯ·͢
w ετϦʔϛϯά w *P5ʢηϯαʔʣͱͷ࿈ܞ ࠓޙ3Y+4Λ͍ͳ͕ΒϝϦοτɾσϝϦοτΛࢹ͍͖ͯ͠·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠