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
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
360
キャパを超えた大型プロジェクトから学んだこと
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
from Sakichi Toyoda to Agile
kawaguti
PRO
1
110
衛星画像超解像化によって実現する2D, 3D空間情報の即時生成と“AI as a Service”/ Real-time generation spatial data enabled_by satellite image super-resolution
lehupa
0
140
やる気のない自分との向き合い方/How to Deal with Your Unmotivated Self
sanogemaru
0
470
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
200
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
210
ComposeではないコードをCompose化する case ビズリーチ / DroidKaigi 2025 koyasai
visional_engineering_and_design
0
100
ニッポンの人に知ってもらいたいGISスポット
sakaik
0
110
AWS IoT 超入門 2025
hattori
0
310
三菱電機・ソニーグループ共同の「Agile Japan企業内サテライト」_2025
sony
0
140
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
180
定期的な価値提供だけじゃない、スクラムが導くチームの共創化 / 20251004 Naoki Takahashi
shift_evolve
PRO
4
360
「れきちず」のこれまでとこれから - 誰にでもわかりやすい歴史地図を目指して / FOSS4G 2025 Japan
hjmkth
1
280
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
KATA
mclloyd
32
15k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
32
2.3k
Scaling GitHub
holman
463
140k
It's Worth the Effort
3n
187
28k
YesSQL, Process and Tooling at Scale
rocio
173
14k
We Have a Design System, Now What?
morganepeng
53
7.8k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
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Λ͍ͳ͕ΒϝϦοτɾσϝϦοτΛࢹ͍͖ͯ͠·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠