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
複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Ra...
Search
END
October 17, 2024
Technology
0
770
複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Rails import architecture for integration and transformation of multiple external service data
Reject on Rails 2024
LT資料
END
October 17, 2024
Tweet
Share
More Decks by END
See All by END
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
1k
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
590
プログラミングスクールのつながりがキャリアにつながるのかもしれない話 / Connections at programming schools may lead to a career
aiandrox
0
380
そうだ RubyKaigi、行こう。 / Let's go to RubyKaigi
aiandrox
0
2.1k
おすすめのVSCodeプラグイン / Recommended VSCode Extension
aiandrox
0
480
Other Decks in Technology
See All in Technology
チームビルディング「脅威モデリング」ワークショップ
koheiyoshikawa
0
160
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
コード品質向上で得られる効果と実践的取り組み
ham0215
2
210
Agile TPIを活用した品質改善事例
tomasagi
0
360
Medmain FACTBOOK
akinaootani
0
120
職種に名前が付く、ということ/The fact that a job title has a name
bitkey
1
250
PostgreSQL Unconference #52 pg_tde
nori_shinoda
1
240
AWS CDK コントリビュート はじめの一歩
yendoooo
1
120
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
120
Riverpod & Riverpod Generatorを利用して状態管理部分の処理を書き換えてみる簡単な事例紹介
fumiyasac0921
0
110
入社後SREチームのミッションや課題の整理をした話
morix1500
1
120
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
450
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Bash Introduction
62gerente
611
210k
Become a Pro
speakerdeck
PRO
27
5.2k
Visualization
eitanlees
146
16k
The Language of Interfaces
destraynor
157
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
620
The Cult of Friendly URLs
andyhume
78
6.3k
Music & Morning Musume
bryan
46
6.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Transcript
ෳͷ֎෦αʔϏεσʔλͷ౷߹ͱมΛ࣮ݱ͢Δ RailsͷΠϯϙʔτΞʔΩςΫνϟ 2024/10/17 Reject on Rails 2024 ϑΝΠϯσΟגࣜձࣾɹԕ౻ ܆
ࣗݾհ 2 ENDʢԕ౻ ܆ʣ 20232݄ʹϑΝΠϯσΟʹೖࣾ RailsΛϝΠϯʹFindy Team+ͷ։ൃΛ͍ͯ͠·͢ Kaigi on Rails
CFP ࠓճॳఏग़ʂ gotanda.rb ॳࢀՃʂ @aiandrox
ࠓ͢͜ͱ • ෳͷ֎෦αʔϏε͔ΒσʔλΛऔಘ͍ͯ͠ΔFindy Team+ ʹ͓͚ΔσʔλΠϯϙʔτͷΞʔΩςΫνϟʹ͍ͭͯ • چΞʔΩςΫνϟͰੜ͍ͯͨ͡՝Λղফ͢ΔͨΊʹऔΓೖ Εͨ৽ΞʔΩςΫνϟ 3
Findy Team+ͱʁ 4 ։ൃੜ࢈ੑͷՄࢹԽɺ։ൃϓϩηεͷ৳ͼ͠Ζͷൃݟɺܧଓతͳ վળΛαϙʔτ
5 Findy Team+ͱʁ • ϓϧϦΫͳͲʹؔ͢Δɹ ͞·͟·ͳσʔλΛऔಘ • Ͳͷ֎෦αʔϏεͰɹ ಉ͡UIͰσʔλΛදࣔ
σʔλΠϯϙʔτͷΞʔΩςΫνϟʢچʣ 6
7 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε Transformer ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ
Importer Client GitLab ςʔϒϧ GitHub ςʔϒϧ
8 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ GemΛར༻͠ɺϨεϙϯεΛ
GemͷΠϯελϯεͱͯ͠औಘ͢Δ Transformer Importer Client GitLab ςʔϒϧ GitHub ςʔϒϧ
9 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer
Importer Client GitLab ςʔϒϧ GitHub ςʔϒϧ αʔϏεಠࣗͷσʔλߏͷ·· αʔϏε͝ͱͷσʔλ֨ೲ༻ςʔϒϧʹอଘ
10 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer
Importer Client GitLab ςʔϒϧ GitHub ςʔϒϧ ֤αʔϏεͷσʔλߏࠩΛ ٵऩ͠ɺڞ௨ͷςʔϒϧʹอଘ
ैདྷͷΞʔΩςΫνϟͷ՝ 11
12 ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer Importer Client
GitLab ςʔϒϧ GitHub ςʔϒϧ ClientͱImporter͕ີ݁߹͍ͯ͠Δ 😢 ImporterͰσʔλͷfetchɺՃɺ Ϩίʔυอଘʹඞཁͳ֎෦ΩʔΛऔಘɺ ҰׅอଘΛߦ͍ͬͯΔ 😢 ImporterͷςετʹAPIͷελϒ͕ ඞཁ ैདྷͷΞʔΩςΫνϟͷ՝
13 ಠࣗGemͷ Πϯελϯε Transformer ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Importer Client
GitLab ςʔϒϧ GitHub ςʔϒϧ ΤϥʔϋϯυϦϯάɺϦτϥΠॲཧͳͲ͕ ClientɾImporterͷ͍ΖΜͳՕॴͰ࣮ ͞Ε͍ͯΔ ैདྷͷΞʔΩςΫνϟͷ՝
ैདྷͷΞʔΩςΫνϟͷ՝ 14 ৽ͨͳίʔυཧπʔϧʹରԠ͢ΔͷΛ͖͔͚ͬʹ ClientɾImporterͷΞʔΩςΫνϟΛݟ͠
৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ 15
16 ৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ Representation Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Bitbucket ςʔϒϧ Backlog ςʔϒϧ
Representation Πϯελϯε Transformer Importer Client
ैདྷͷΞʔΩςΫνϟͷ՝ͷղܾ • ClientͱImporter͕ີ݁߹͍ͯ͠Δ 17 Client͔ΒΠϯελϯεΛImporterʹ͢Α͏ʹ͠ɺ ImporterϨίʔυΛอଘ͢Δ͜ͱʹྗ͢Δ
ैདྷͷΞʔΩςΫνϟͷ՝ͷղܾ • ΤϥʔϋϯυϦϯάɺϦτϥΠॲཧͳͲ͕Clientɾ Importerͷ͍ΖΜͳՕॴͰ࣮͞Ε͍ͯΔ 18 ClientͰϦτϥΠॲཧͱΤϥʔΫϥεͷ࡞Λߦ͍ɺ ΤϥʔϋϯυϦϯάImporterͰߦ͏Α͏ʹͨ͠
৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ • ClientΛlibԼʹஔ͘Α͏ʹͨ͠ 19 . ┣━━━ app ┃ ┣━━ importer
┃ ┃ ┣━━ service_a ┃ ┃ ┗━━ service_b ┃ ┗━━ transformer ┗━━━ lib ┣━━ service_a_client ┗━━ service_b_client
20 Before ಠࣗGemͷ Πϯελϯε Client ֎෦ αʔϏε ֎෦ αʔϏε app
After Representation Πϯελϯε αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ Client Importer Transformer Importer Transformer αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib
21 ৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ ֎෦αʔϏεͷAPI σʔλͷऔಘॲཧͷࠩΛٵऩ ֤ΞιγΤʔγϣϯΛอ࣋͠ ඞཁͳσʔλΛอଘ͢Δ ֤αʔϏεͷσʔλߏ ͷࠩΛٵऩ Ҏલີ݁߹͍֤ͯͨ͠ͷ͕໌֬ʹͳͬͨ Client
֎෦ αʔϏε Representation Πϯελϯε Importer Transformer αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib
ࠓޙΓ͍ͨ͜ͱ 22
• શαʔϏεʹ͓͚ΔΞʔΩςΫνϟͷ౷Ұ • GitHub, GitLab·ͩچΞʔΩςΫνϟͷ·· • libԼʹஔ͍֤ͨαʔϏεͷσʔλऔಘॲཧͷGemԽ 23 ࠓޙΓ͍ͨ͜ͱ
·ͱΊ 24
25 ·ͱΊ Findy Team+ͰɺClientɾImporterɾTransformerͰ ֎෦αʔϏεͷࠩΛٵऩ͍ͯ͠Δ Client ֎෦ αʔϏε Representation Πϯελϯε
Importer Transformer αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib