Upgrade to Pro — share decks privately, control downloads, hide ads and more …

『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか

 『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか

2024/04/24(Wed)に行われたGotanda.rb#58の登壇資料です。
https://gotanda-rb.connpass.com/event/315058/

『Railsオワコン』と言われる時代に、なぜブルーモ証券はテックスタックの1つとしてRailsを選んだのかの解説資料です。

Avatar for free_world21

free_world21

April 25, 2024
Tweet

More Decks by free_world21

Other Decks in Programming

Transcript

  1. ▪ খྛޛ࢙ʢখྛϊΤϧʣ ▪ ຊۀɿϒϧʔϞূ݊גࣜձࣾऔక໾$50 – ถࠃגɾถࠃ&5'ઐۀͷ௕ظࢿ࢈ܗ੒ಛԽ ܕͷ౤ࢿΞϓϦΛ࡞ͬͯΔ'JOUFDIελʔ τΞοϓ ▪ ೥

    ΄ͲϑϦʔϥϯεΤϯδχΞ – ్தࣄۀձࣾͷதͷਓ΋΍ͬͨ ▪ ʙɿϒϧʔϞΠϯϕετϝϯτגࣜձࣾ Λڞಉ૑ۀʢޙʹϒϧʔϞূ݊גࣜձࣾʹ঎߸ มߋʣ ▪ झຯɿཱྀߦɾੈքͷίϫʔΩϯάεϖʔεΊ͙ ΓʢϫʔέʔγϣϯతͳԿ͔ʣ @free_world21 THE FARM@NY CARR WORKPLACE@Chicago https://bloomo.co.jp/
  2. ΍Γ͍ͨ͜ͱ ▪ Ϛε޲͚ͷ౤ࢿαʔϏεΞϓϦΛ૑Γ͍ͨ – 6*69ʹపఈతʹͩ͜ΘΓ͍ͨʢͳͷͰ૑ۀϝϯόʔʹσβΠφʔ͕͍Δʣ – 6*69ͷ؍఺͔Βॳظ͔ΒωΠςΟϒΞϓϦͰ΍Γ͍ͨ ▪ ࠷ॳ͔ΒୈҰछۚ༥঎඼औҾۀʢূ݊ձࣾʣͷۀొ࿥Λ໨ࢦ͢ –

    ถࠃגʢถࠃ&5'ؚΉʣઐۀ – ͭ·ΓΨνͷূ݊ձࣾ ▪ খྛ͕લ৬Ͱܦݧͨ͠ͷ͸ୈҰछগֹిࢠืूऔѻۀ຿ʢגࣜ౤ࢿܕΫϥ΢υϑΝϯ σΟϯάʣ – ݸਓ৘ใ΍͓ۚͷऔΓѻ͍ͳͲɺ͔ͳΓߗ͍γεςϜΛ࡞Βͳ͍ͱ͍͚ͳ͍ ▪ ͨͩ୯ͳΔ౤ࢿαʔϏεͰ͸ͳ͘ଞͷ౤ࢿՈͷ৘ใ͕ݟΕͨΓަྲྀͰ͖ΔΑ͏ͳػೳ ʢ4/4తͳཁૉʣΛೖΕ͍͖͍ͯͨ
  3. ͬ͘͟ΓͭͷίϯϙʔωϯτʢνʔϜʣ͕ඞཁ ▪ ϞόΠϧʢωΠςΟϒʣΞϓϦ ▪ Ϋϥ΢υΠϯϑϥ ▪ όοΫΤϯυͷΞϓϦέʔγϣϯαʔό – ࠷ॳ͔ΒϚΠΫϩαʔϏε͸͠ͳ͍ –

    Ͱ΋ຕؠͷϞϊϦε΋͙͢ਏ͘ͳΔ – ηΩϡϦςΟʔతͳ؍఺΋ؚΊͯɺͬ͘͟Γʲ͓ۚΛऔΓѻ͏෦෼ʳͱʲ͓ۚҎ֎ ͷ෦෼ʳͷͭ͘Β͍ʹ෼͚Α͏
  4. ωΠςΟϒΞϓϦ͸جຊతʹ୒ ▪ 🙅8FCϏϡʔΛ࢖ͬͨΨϫ͚ͩωΠςΟϒΞϓϦ ▪ 4XJGU,PUPMJOͷૉͷωΠςΟϒ – 🟢ΞϓϦͷύϑΥʔϚϯε͸࠷େԽͰ͖Δ – ❌޻਺ഒ ▪

    3FBDU/BUJWF – 🟢5ZQF4DSJQUͰॻ͚ΔˠόοΫΤϯυ΋5ZQF4DSJQUʹ౷Ұ͢Ε͹ਓࡐ୳͠΋ֶश ίετ΋͍ͩͿָʹͳΔ – ❌+4ΤϯδϯΛհͯ͠ωΠςΟϒͷػೳΛݺͼग़ͯ͠ΔͷͰʢཧ࿦্ʣ'MVUUFSΑ ΓύϑΥʔϚϯε͸ྼΔʢͱݴΘΕΔ͜ͱ͕ଟ͍ʣ ▪ 'MVUUFS – 🟢े෼ͳύϑΥʔϚϯεʢ࣮ମݧʣɻίϯϙʔωϯτͷݟͨ໨ͷҰ؏ੑɻ – ❌%BSU΍'MVUUFSͦͷ΋ͷͷֶशίετ͸ͦͦ͜͜
  5. ωΠςΟϒΞϓϦ͸جຊతʹ୒ ▪ 🙅8FCϏϡʔΛ࢖ͬͨΨϫ͚ͩωΠςΟϒΞϓϦ ▪ 4XJGU,PUPMJOͷૉͷωΠςΟϒ – 🟢ΞϓϦͷύϑΥʔϚϯε͸࠷େԽͰ͖Δ – ❌޻਺ഒ ▪

    3FBDU/BUJWF – 🟢5ZQF4DSJQUͰॻ͚ΔˠόοΫΤϯυ΋5ZQF4DSJQUʹ౷Ұ͢Ε͹ਓࡐ୳͠΋ֶश ίετ΋͍ͩͿָʹͳΔ – ❌+4ΤϯδϯΛհͯ͠ωΠςΟϒͷػೳΛݺͼग़ͯ͠ΔͷͰʢཧ࿦্ʣ'MVUUFSΑ ΓύϑΥʔϚϯε͸ྼΔʢͱݴΘΕΔ͜ͱ͕ଟ͍ʣ ▪ 'MVUUFS – 🟢े෼ͳύϑΥʔϚϯεʢ࣮ମݧʣɻίϯϙʔωϯτͷݟͨ໨ͷҰ؏ੑɻ – ❌%BSU΍'MVUUFSͦͷ΋ͷͷֶशίετ͸ͦͦ͜͜
  6. Πϯϑϥ ʢίϯςφϕʔεͰ૊Ή͜ͱΛલఏʹͪ͜Β΋୒ʣ ▪ 7.Πϯελϯε༻ҙͯͦ͠ͷதͰEPDLFSDPNQPTFͰ͕Μ͹Δ – 🟢ߏ੒͕γϯϓϧͰόοΫΤϯυॻ͚ΔਓͳΒେମ͞ΘΕΔ – ❌ࣗಈ෮چ΍Φʔτεέʔϧͱ͔ࣗ෼Ͱઃఆ͠ͳ͍ͱ͍͚ͳ͍ ▪ .BOBHFEܥίϯςφαʔϏεʢʹ&$4ʣ

    – 🟢ˢͷσϝϦοτ͕NBOBHFEʹͳΔ – ❌ϩοΫΦϯ ▪ ,VCFSOFUFT – 🟢ϙʔλϏϦςΟɻʮLT࢖ͬͯ·͢ʂʯͬͯݴ͑ΔͱͳΜ͔ŜŕŠŘŘʢݸਓͷײ૝ Ͱ͢ʣ – ❌ֶशίετ ಠஅͱภݟɺϊϦͱ੎͍Ͱ ŚŘźŕͰܾΊͨ
  7. όοΫΤϯυʢ࠷େͷ೰Έʣ ▪ 3VCZ 3BJMT 1ZUIPO 5ZQF4DSJQU (PMBOHͷͭʹߜΓࠐΉ – 🙇3VTU 4DBMB

    +BWBʢTFSWFSTJEFLPUPMJOʣ TFSWFSTJEF%BSU 3VCZ 1ZUIPO 5ZQF4DSJQU (PMBOH 'SBNFXPSL 'VMMTUBDL 3BJMT 'VMMTUBDL %KBOHP NJDSPGSBNFXPSL 'MBTL 'BTU"1*౳ ແݶ &YQSFTT /FTU౳ NJDSPGSBNFXPSL HJO FDIP౳ 03. "DUJWF3FDPSE %KBOHP03. 42-"MDIFNZ 5ZQF03. 1SJTNB౳ ࣗ࡞ FOU NJHSBUJPO "DUJWF3FDPSE.JHSBUJPO %KBOHPNJHSBUJPO BMFNCJD ECNJHSBUF౳ HPMBOHNJHSBUF HPPTF ςετ NJOJUFTU STQFD %KBOHPUFTU QZUFTU QZUFTU +FTU +BTNJOF౳ CVJMUJO ܕαϙʔτ 3#4 5ZQF)JOUT CVJMUJO CVJMUJO ʢͨͩ͠ίϯύΠϧΦϓ γϣϯଟ਺ʣ CVJMUJO ੎͍ ԼՐʁ XFC୯ಠͰ͸ʁ ʢجຊ"*ͱηοτʣ ͋Δ ͋Δ ͦͷଞ ϥΠϒϥϦଟ਺ɺ ίϛϡχςΟ͕੒ख़ ಉࠨ͕ͩɺ͋͘·Ͱ"*ͱ͍͏DPOUFYUͰ ޠΒΕΔ͜ͱ͕ଟ͍ 5ZQF4DSJQUͷ OBUJWFSVOUJNF͸ ·ͩ·ͩᴈ໌ظ ͳ͔ͬͨΒͱΓ͋ ͑ͣࣗ෼Ͱ࡞Δత ͳจԽ͕ڧΊ
  8. όοΫΤϯυʢ࠷େͷ೰Έʣ ▪ 3VCZ 3BJMT 1ZUIPO 5ZQF4DSJQU (PMBOHͷͭʹߜΓࠐΉ – 🙇3VTU 4DBMB

    +BWBʢTFSWFSTJEFLPUPMJOʣ TFSWFSTJEF%BSU 3VCZ 1ZUIPO 5ZQF4DSJQU (PMBOH 'SBNFXPSL 'VMMTUBDL 3BJMT 'VMMTUBDL %KBOHP NJDSPGSBNFXPSL 'MBTL 'BTU"1*౳ ແݶ &YQSFTT /FTU౳ NJDSPGSBNFXPSL HJO FDIP౳ 03. "DUJWF3FDPSE %KBOHP03. 42-"MDIFNZ 5ZQF03. 1SJTNB౳ ࣗ࡞ FOU NJHSBUJPO "DUJWF3FDPSE.JHSBUJPO %KBOHPNJHSBUJPO BMFNCJD ECNJHSBUF౳ HPMBOHNJHSBUF HPPTF ςετ NJOJUFTU STQFD %KBOHPUFTU QZUFTU QZUFTU +FTU +BTNJOF౳ CVJMUJO ܕαϙʔτ 3#4 5ZQF)JOUT CVJMUJO CVJMUJO ʢͨͩ͠ίϯύΠϧΦϓ γϣϯଟ਺ʣ CVJMUJO ੎͍ ԼՐʁ XFC୯ಠͰ͸ʁ ʢجຊ"*ͱηοτʣ ͋Δ ͋Δ ͦͷଞ ϥΠϒϥϦଟ਺ɺ ίϛϡχςΟ͕੒ख़ ಉࠨ͕ͩɺ͋͘·Ͱ"*ͱ͍͏DPOUFYUͰ ޠΒΕΔ͜ͱ͕ଟ͍ 5ZQF4DSJQUͷ OBUJWFSVOUJNF͸ ·ͩ·ͩᴈ໌ظ ͳ͔ͬͨΒͱΓ͋ ͑ͣࣗ෼Ͱ࡞Δత ͳจԽ͕ڧΊ 3BJMTͱ%BKBOHPҎ֎͸ ֤ཁૉΛࣗ෼ͰબΜͰܾΊͯ͘ඞཁ ͕͋Δ
  9. ϓϩάϥϛϯάݴޠͦͷ΋ͷ ▪ ѹ౗తͳ1ZUIPOਓؾ – ͨͩຆͲ͸"*ͱ͍͏DPOUFYUͰݕࡧ͞ΕͯΔؾ͕͢Δ – ͦͷଞσʔλαΠΤϯεɺݚڀͱ͔Ͱ΋Α͘࢖ΘΕΔ – ʢΤϯδχΞҎ֎΋୔ࢁݕࡧͯ͠Δʁʣ ▪

    ೔ຊͰ͸3VCZ 5ZQF4DSJQU (PMBOH͸͋·ΓมΘΒͳ͍ ▪ ւ֎Ͱ͸3VCZ5ZQF4DSJQU(PMBOHͷਓؾॱͬΆ͍ ೔ຊ ΞϝϦΧ શੈք
  10. ࣗ෼͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱࣗ෼͕΍͖ͬͯͨ͜ͱʣ • 3VCZ • 1ZUIPO • 5ZQF4DSJQU • +BWB

    ࣗ෼͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Β࢖͍͖͍ͬͯͨ΋ͷʣ ͿͬͪΌ͚͋·Γͳ͍ʢϓϩμΫτΛ࡞Δ ͷ͕޷͖ʣ͕͋͑ͯݴ͏ͳΒ • 1ZUIPO "* • (PMBOH • 3VCZ
  11. ࣗ෼͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱࣗ෼͕΍͖ͬͯͨ͜ͱʣ • 3VCZ • 1ZUIPO • 5ZQF4DSJQU • +BWB

    ࣗ෼͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Β࢖͍͖͍ͬͯͨ΋ͷʣ ͿͬͪΌ͚͋·Γͳ͍ʢϓϩμΫτΛ࡞Δ ͷ͕޷͖ʣ͕͋͑ͯݴ͏ͳΒ • 1ZUIPO "* • (PMBOH • 3VCZ ੈؒͷਓ͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱਓؾ͕ߴ͔ͬͨ΋ͷʣ • +BWB • 1)1 • 3VCZ • 1ZUIPO
  12. ࣗ෼͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱࣗ෼͕΍͖ͬͯͨ͜ͱʣ • 3VCZ • 1ZUIPO • 5ZQF4DSJQU • +BWB

    ࣗ෼͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Β࢖͍͖͍ͬͯͨ΋ͷʣ ͿͬͪΌ͚͋·Γͳ͍ʢϓϩμΫτΛ࡞ Δͷ͕޷͖ʣ͕͋͑ͯݴ͏ͳΒ • 1ZUIPO "* • (PMBOH • 3VCZ ੈؒͷਓ͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱਓؾ͕ߴ͔ͬͨ΋ͷʣ • +BWB • 1)1 • 3VCZ • 1ZUIPO ੈؒͷਓ͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Βਓؾ͕ग़ͦ͏ͳ΋ͷʣ • 1ZUIPO "* • 5ZQF4DSJQU • (PMBOH
  13. ࣗ෼͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱࣗ෼͕΍͖ͬͯͨ͜ͱʣ • 3VCZ • 1ZUIPO • 5ZQF4DSJQU • +BWB

    ࣗ෼͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Β࢖͍͖͍ͬͯͨ΋ͷʣ ͿͬͪΌ͚͋·Γͳ͍ʢϓϩμΫτΛ࡞ Δͷ͕޷͖ʣ͕͋͑ͯݴ͏ͳΒ • 1ZUIPO "* • (PMBOH • 3VCZ ੈؒͷਓ͕Ͱ͖Δ͜ͱ ʢࠓ·Ͱਓؾ͕ߴ͔ͬͨ΋ͷʣ • +BWB • 1)1 • 3VCZ • 1ZUIPO ੈؒͷਓ͕΍Γ͍ͨ͜ͱ ʢ͜Ε͔Βਓؾ͕ग़ͦ͏ͳ΋ͷʣ • 1ZUIPO "* • 5ZQF4DSJQU • (PMBOH ͜ͷ෦෼ͰͲ͏͍͏ཱͪҐஔΛऔΔ ΂͖͔ʁ
  14. ݁࿦ ͓ۚҎ֎ͷ෦෼ʢΞϓϦͷ"1*αʔόɺ؅ཧը໘ʣʹ3VCZPO3BJMT ▪ 03.΍NJHSBUJPOɺςετͷϑϨʔϜϫʔΫͱ͔ݸผʹબͿඞཁ͕ͳ͍ɿߟྀɾௐࠪ޻਺Λେ෯ʹ࡟ݮͰ͖Δ ▪ ೝূೝՄ΍ηΩϡϦςΟʔͱ͔͸͍ͬͨΜϑϨʔϜϫʔΫ΍σϑΝΫτͷϥΠϒϥϦͰରԠ ▪ ཁ͕݅͜Ζ͜ΖมΘΔϑϩϯτ΍؅ཧը໘ʹॊೈʹରԠͰ͖Δ ▪ 3BJMTਓࡐɿελʔτΞοϓք۾ɺϓϩάϥϛϯάॳֶऀͳͲਓ਺͸ͦΕͳΓʹ͍Δ

    ͓ۚΛऔΓѻ͏෦෼ʹ(PMBOHʢ(JOXJUI&OUʣ ▪ ߗ͘࡞Δ΂͖෦෼Λߗ͍ݴޠͰ࡞ͬͯΔͱ͍͏Πϝʔδײ ▪ Πϯλʔωοτ͔Β௚ΞΫηεͳ͠ɿ͜·͔͍ೝূೝՄͱ͔ηΩϡϦςΟʔͱ͔ͷߟྀɾௐࠪ޻਺ΛݮΒ͢ ▪ (PMBOHਓࡐɿϝΨϕϯνϟʔͰͷ࠾༻ࣄྫ͕ଟ͍ͷͰɺϝΨϕϯνϟʔస৬૊ͱ͔ͷड͚ࡼʹͳΕͨΒ͍͍ͳ
  15. ೥ऑɺ࣮ࡍ΍ͬͯΈͯͲ͏͔ ▪ ʢݸਓతࣄ৘ʣझຯͷ"*ܥϓϩμΫτΛ1ZUIPO%KBOHPͰ࡞ͬͯͨͷͰɺվΊͯ 3BJMT΍Δͱ࣮ՈͷΑ͏ͳ҆৺ײΛײ͡Δ – ଞͷબ୒ࢶ͸ΞϓϦέʔγϣϯͷίʔυΛॻ͘·Ͱ͕௕͍ɾɾɾ – 3BJMT͸rails newͨ͠Βଈ࠲ʹॻ͚Δͱ͍͏͜ͱʹվΊͯײಈ ▪

    ֮͑Δ΋ͷ͕୔ࢁͰେมͩͬͨ – 'MVUUFS %BSU 3VCZPO3BJMT (PMBOH HJOXJUIFOU ($1,VCFSOFUFT – গ͠΍ͬͨ͜ͱ͋Δɿ'MVUUFS %BSU ɺ΄΅ॳΊͯɿ(PMBOH ($1 ▪ ,VCFSOFUFT͸࠷ॳେม͕ͩͬͨɺ࠷ۙ͸͍ͩͿ׳Ε͖ͯͨ – ·ͩ͋·Γෳࡶͳ͜ͱ͸ͯ͠ͳ͍͠ ▪ 'MVUUFS͸࠾༻ࣄྫ΋ண࣮ʹ૿͓͑ͯΓબΜͰਖ਼ղͩͬͨͱࢥ͏