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
510
複数の外部サービスデータの統合と変換を実現する 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
プログラミングスクールのつながりがキャリアにつながるのかもしれない話 / Connections at programming schools may lead to a career
aiandrox
0
340
そうだ RubyKaigi、行こう。 / Let's go to RubyKaigi
aiandrox
0
1.8k
おすすめのVSCodeプラグイン / Recommended VSCode Extension
aiandrox
0
420
Other Decks in Technology
See All in Technology
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
150
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
700
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
200
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
220
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
10
1.3k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.7k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Side Projects
sachag
452
42k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
How STYLIGHT went responsive
nonsquared
95
5.2k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Faster Mobile Websites
deanohume
305
30k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
How to Ace a Technical Interview
jacobian
276
23k
Building Applications with DynamoDB
mza
90
6.1k
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