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
910
複数の外部サービスデータの統合と変換を実現する 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
210
なぜ私は自分が使わないサービスを作るのか? / 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
670
プログラミングスクールのつながりがキャリアにつながるのかもしれない話 / Connections at programming schools may lead to a career
aiandrox
0
400
そうだ RubyKaigi、行こう。 / Let's go to RubyKaigi
aiandrox
0
2.3k
おすすめのVSCodeプラグイン / Recommended VSCode Extension
aiandrox
0
510
Other Decks in Technology
See All in Technology
DATA+AI SummitとSnowflake Summit: ユーザから見た共通点と相違点 / DATA+AI Summit and Snowflake Summit
nttcom
0
250
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
250
20150719_Amazon Nova Canvas Virtual try-onアプリ 作成裏話
riz3f7
0
140
大規模組織にAIエージェントを迅速に導入するためのセキュリティの勘所 / AI agents for large-scale organizations
i35_267
6
300
20250719_JAWS_kobe
takuyay0ne
1
170
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
250
AIエージェントを支える設計
tkikuchi1002
10
1.7k
分散トレーシングによる コネクティッドカーのデータ処理見える化の試み
thatsdone
0
260
KCD Lima: eBee in Peru!
lizrice
0
100
新規事業におけるAIリサーチの活用例
ranxxx
0
170
スプリントレビューを効果的にするために
miholovesq
9
1.7k
AI Ready API ─ AI時代に求められるAPI設計とは?/ AI-Ready API - Designing MCP and APIs in the AI Era
yokawasa
21
6k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
7
530
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
370
Git: the NoSQL Database
bkeepers
PRO
431
65k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
KATA
mclloyd
30
14k
Fireside Chat
paigeccino
37
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
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