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

複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Ra...

aiandrox
October 17, 2024

複数の外部サービスデータの統合と変換を実現する Railsのインポートアーキテクチャ / Rails import architecture for integration and transformation of multiple external service data

Reject on Rails 2024でLTをしました。

aiandrox

October 17, 2024
Tweet

More Decks by aiandrox

Other Decks in Technology

Transcript

  1. 8 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ GemΛར༻͠ɺϨεϙϯεΛ

    GemͷΠϯελϯεͱͯ͠औಘ͢Δ Transformer૚ Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ
  2. 9 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer૚

    Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ αʔϏεಠࣗͷσʔλߏ଄ͷ·· αʔϏε͝ͱͷσʔλ֨ೲ༻ςʔϒϧʹอଘ
  3. 10 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer૚

    Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ ֤αʔϏεͷσʔλߏ଄ࠩ෼Λ ٵऩ͠ɺڞ௨ͷςʔϒϧʹอଘ
  4. 12 ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer૚ Importer૚ Client૚

    GitLab ςʔϒϧ GitHub ςʔϒϧ Client૚ͱImporter૚͕ີ݁߹͍ͯ͠Δ 😢 Importer૚ͰσʔλͷfetchɺՃ޻ɺ Ϩίʔυอଘʹඞཁͳ֎෦ΩʔΛऔಘɺ ҰׅอଘΛߦ͍ͬͯΔ 😢 Importer૚ͷςετʹAPIͷελϒ͕ ඞཁ ैདྷͷΞʔΩςΫνϟͷ՝୊
  5. 13 ಠࣗGemͷ Πϯελϯε Transformer૚ ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Importer૚ Client૚

    GitLab ςʔϒϧ GitHub ςʔϒϧ ΤϥʔϋϯυϦϯάɺϦτϥΠॲཧͳͲ͕ Client૚ɾImporter૚ͷ͍ΖΜͳՕॴͰ࣮૷ ͞Ε͍ͯΔ ैདྷͷΞʔΩςΫνϟͷ՝୊
  6. ৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ • Client૚Λlib഑Լʹஔ͘Α͏ʹͨ͠ 19 . ┣━━━ app ┃ ┣━━ importer

    ┃ ┃ ┣━━ service_a ┃ ┃ ┗━━ service_b ┃ ┗━━ transformer ┗━━━ lib ┣━━ service_a_client ┗━━ service_b_client
  7. 20 Before ಠࣗGemͷ Πϯελϯε Client૚ ֎෦ αʔϏε ֎෦ αʔϏε app

    After Representation Πϯελϯε αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ Client૚ Importer૚ Transformer૚ Importer૚ Transformer૚ αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib