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
960
複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Rails import architecture for integration and transformation of multiple external service data
Reject on Rails 2024
LT資料
参考:
Findy Team+のデータインポートのアプリケーションアーキテクチャを大公開! - Findy Tech Blog
END
October 17, 2024
Tweet
Share
More Decks by END
See All by END
テストって楽しい!開発を加速させるテストの魅力 / Testing is Fun! The Fascinating of Testing to Accelerate Development
aiandrox
0
220
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
1.1k
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
690
プログラミングスクールのつながりがキャリアにつながるのかもしれない話 / Connections at programming schools may lead to a career
aiandrox
0
410
そうだ RubyKaigi、行こう。 / Let's go to RubyKaigi
aiandrox
0
2.4k
おすすめのVSCodeプラグイン / Recommended VSCode Extension
aiandrox
0
520
Other Decks in Technology
See All in Technology
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
1.2k
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
500
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
400
人工衛星のファームウェアをRustで書く理由
koba789
15
8.3k
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
260
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.2k
Rustから学ぶ 非同期処理の仕組み
skanehira
1
150
IoT x エッジAI - リアルタイ ムAI活用のPoCを今すぐ始め る方法 -
niizawat
0
120
2025/09/16 仕様駆動開発とAI-DLCが導くAI駆動開発の新フェーズ
masahiro_okamura
0
130
Create Ruby native extension gem with Go
sue445
0
130
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
460
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Documentation Writing (for coders)
carmenintech
74
5k
The Invisible Side of Design
smashingmag
301
51k
Facilitating Awesome Meetings
lara
55
6.5k
Automating Front-end Workflow
addyosmani
1370
200k
Typedesign – Prime Four
hannesfritz
42
2.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
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