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
24
RxJS と Netflix から学ぶリアクティブプログラミング
Masayoshi Tokumoto
November 07, 2021
Tweet
Share
More Decks by Masayoshi Tokumoto
See All by Masayoshi Tokumoto
プロダクト・人・チームをいい感じにするためのシステム思考
sasumasa
0
44
GraphQL を完全に理解する
sasumasa
0
26
Stimulus × Jest × Direct Upload × Image Fluxで カオスなJS環境と画像アップロード機能を改善しつつユーザーの投稿率を上げた話
sasumasa
1
350
キャパを超えた大型プロジェクトから学んだこと
sasumasa
0
1.3k
RailsエンジニアがStimulus + 生JSだけで約半年のプロジェクトを終えた今思うこと
sasumasa
0
330
IKUSEI on Rails
sasumasa
2
1.9k
文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02
sasumasa
9
19k
Other Decks in Technology
See All in Technology
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
150
The Rise of LLMOps
asei
7
1.6k
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
140
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
110
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
400
Application Development WG Intro at AppDeveloperCon
salaboy
0
190
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
We Have a Design System, Now What?
morganepeng
50
7.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Site-Speed That Sticks
csswizardry
0
26
RailsConf 2023
tenderlove
29
900
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Navigating Team Friction
lara
183
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
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Λ͍ͳ͕ΒϝϦοτɾσϝϦοτΛࢹ͍͖ͯ͠·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠