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
45
RxJS と Netflix から学ぶリアクティブプログラミング
Masayoshi Tokumoto
November 07, 2021
Tweet
Share
More Decks by Masayoshi Tokumoto
See All by Masayoshi Tokumoto
プロダクト・人・チームをいい感じにするためのシステム思考
sasumasa
0
61
GraphQL を完全に理解する
sasumasa
0
40
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
CodeRabbit CLI + Claude Codeの連携について
oikon48
0
460
Kiro Power - Amazon Bedrock AgentCore を学ぶ、もう一つの方法
r3_yamauchi
PRO
0
110
CQRS/ESになぜアクターモデルが必要なのか
j5ik2o
0
1.3k
コミュニティが持つ「学びと成長の場」としての作用 / RSGT2026
ama_ch
2
400
ファインディにおけるフロントエンド技術選定の歴史
puku0x
2
1.6k
エンジニアとして長く走るために気づいた2つのこと_大賀愛一郎
nanaism
0
180
AWS Amplify Conference 2026 - 仕様からリリースまで一気通貫生成 AI 時代のフルスタック開発
inariku
2
300
AWS監視を「もっと楽する」ために
uechishingo
0
180
2026/01/16_実体験から学ぶ 2025年の失敗と対策_Progate Bar
teba_eleven
1
210
ドメイン駆動セキュリティへの道しるべ
pandayumi
0
150
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
210
ALB「証明書上限問題」からの脱却
nishiokashinji
0
230
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
200
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
The Spectacular Lies of Maps
axbom
PRO
1
440
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
120
[SF Ruby Conf 2025] Rails X
palkan
0
710
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
48k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
70
Git: the NoSQL Database
bkeepers
PRO
432
66k
Prompt Engineering for Job Search
mfonobong
0
140
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to build a perfect <img>
jonoalderson
1
4.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Λ͍ͳ͕ΒϝϦοτɾσϝϦοτΛࢹ͍͖ͯ͠·͢
͋Γ͕ͱ͏͍͟͝·ͨ͠