Slide 1

Slide 1 text

ෳ਺ͷ֎෦αʔϏεσʔλͷ౷߹ͱม׵Λ࣮ݱ͢Δ RailsͷΠϯϙʔτΞʔΩςΫνϟ 2024/10/17 Reject on Rails 2024 ϑΝΠϯσΟגࣜձࣾɹԕ౻ ܆

Slide 2

Slide 2 text

ࣗݾ঺հ 2 ENDʢԕ౻ ܆ʣ 2023೥2݄ʹϑΝΠϯσΟʹೖࣾ RailsΛϝΠϯʹFindy Team+ͷ։ൃΛ͍ͯ͠·͢ Kaigi on Rails CFP ࠓճॳఏग़ʂ gotanda.rb ॳࢀՃʂ @aiandrox

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ ● ෳ਺ͷ֎෦αʔϏε͔ΒσʔλΛऔಘ͍ͯ͠ΔFindy Team+ ʹ͓͚ΔσʔλΠϯϙʔτͷΞʔΩςΫνϟʹ͍ͭͯ ● چΞʔΩςΫνϟͰੜ͍ͯͨ͡՝୊Λղফ͢ΔͨΊʹऔΓೖ Εͨ৽ΞʔΩςΫνϟ 3

Slide 4

Slide 4 text

Findy Team+ͱ͸ʁ 4 ։ൃੜ࢈ੑͷՄࢹԽɺ։ൃϓϩηεͷ৳ͼ͠Ζͷൃݟɺܧଓతͳ վળΛαϙʔτ

Slide 5

Slide 5 text

5 Findy Team+ͱ͸ʁ ● ϓϧϦΫͳͲʹؔ͢Δɹ ͞·͟·ͳσʔλΛऔಘ ● Ͳͷ֎෦αʔϏεͰ΋ɹ ಉ͡UIͰσʔλΛදࣔ

Slide 6

Slide 6 text

σʔλΠϯϙʔτͷΞʔΩςΫνϟʢچʣ 6

Slide 7

Slide 7 text

7 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε Transformer૚ ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

10 Findy Team+ͷσʔλΠϯϙʔτͷΞʔΩςΫνϟ ಠࣗGemͷ Πϯελϯε ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Transformer૚ Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ ֤αʔϏεͷσʔλߏ଄ࠩ෼Λ ٵऩ͠ɺڞ௨ͷςʔϒϧʹอଘ

Slide 11

Slide 11 text

ैདྷͷΞʔΩςΫνϟͷ՝୊ 11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

13 ಠࣗGemͷ Πϯελϯε Transformer૚ ಠࣗGemͷ Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Importer૚ Client૚ GitLab ςʔϒϧ GitHub ςʔϒϧ ΤϥʔϋϯυϦϯάɺϦτϥΠॲཧͳͲ͕ Client૚ɾImporter૚ͷ͍ΖΜͳՕॴͰ࣮૷ ͞Ε͍ͯΔ ैདྷͷΞʔΩςΫνϟͷ՝୊

Slide 14

Slide 14 text

ैདྷͷΞʔΩςΫνϟͷ՝୊ 14 ৽ͨͳίʔυ؅ཧπʔϧʹରԠ͢ΔͷΛ͖͔͚ͬʹ Client૚ɾImporter૚ͷΞʔΩςΫνϟΛݟ௚͠

Slide 15

Slide 15 text

৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ 15

Slide 16

Slide 16 text

16 ৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ Representation Πϯελϯε දࣔσʔλ༻ ςʔϒϧ Bitbucket ςʔϒϧ Backlog ςʔϒϧ Representation Πϯελϯε Transformer૚ Importer૚ Client૚

Slide 17

Slide 17 text

ैདྷͷΞʔΩςΫνϟͷ՝୊ͷղܾ ● Client૚ͱImporter૚͕ີ݁߹͍ͯ͠Δ 17 Client૚͔ΒΠϯελϯεΛImporter૚ʹ౉͢Α͏ʹ͠ɺ Importer૚͸ϨίʔυΛอଘ͢Δ͜ͱʹ஫ྗ͢Δ

Slide 18

Slide 18 text

ैདྷͷΞʔΩςΫνϟͷ՝୊ͷղܾ ● ΤϥʔϋϯυϦϯάɺϦτϥΠॲཧͳͲ͕Client૚ɾ Importer૚ͷ͍ΖΜͳՕॴͰ࣮૷͞Ε͍ͯΔ 18 Client૚ͰϦτϥΠॲཧͱΤϥʔΫϥεͷ࡞੒Λߦ͍ɺ ΤϥʔϋϯυϦϯά͸Importer૚Ͱߦ͏Α͏ʹͨ͠

Slide 19

Slide 19 text

৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ ● Client૚Λlib഑Լʹஔ͘Α͏ʹͨ͠ 19 . ┣━━━ app ┃ ┣━━ importer ┃ ┃ ┣━━ service_a ┃ ┃ ┗━━ service_b ┃ ┗━━ transformer ┗━━━ lib ┣━━ service_a_client ┗━━ service_b_client

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

21 ৽ͨͳσʔλΠϯϙʔτͷΞʔΩςΫνϟ ֎෦αʔϏεͷAPI΍ σʔλͷऔಘॲཧͷࠩ෼Λٵऩ ֤ΞιγΤʔγϣϯΛอ࣋͠ ඞཁͳσʔλΛอଘ͢Δ ֤αʔϏεͷσʔλߏ଄ ͷࠩ෼Λٵऩ Ҏલ͸ີ݁߹͍֤ͯͨ͠૚ͷ੹຿͕໌֬ʹͳͬͨ Client૚ ֎෦ αʔϏε Representation Πϯελϯε Importer૚ Transformer૚ αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib

Slide 22

Slide 22 text

ࠓޙ΍Γ͍ͨ͜ͱ 22

Slide 23

Slide 23 text

● શαʔϏεʹ͓͚ΔΞʔΩςΫνϟͷ౷Ұ ● GitHub, GitLab͸·ͩچΞʔΩςΫνϟͷ·· ● lib഑Լʹஔ͍֤ͨαʔϏεͷσʔλऔಘॲཧͷGemԽ 23 ࠓޙ΍Γ͍ͨ͜ͱ

Slide 24

Slide 24 text

·ͱΊ 24

Slide 25

Slide 25 text

25 ·ͱΊ Findy Team+Ͱ͸ɺClient૚ɾImporter૚ɾTransformer૚Ͱ ֎෦αʔϏεͷࠩ෼Λٵऩ͍ͯ͠Δ Client૚ ֎෦ αʔϏε Representation Πϯελϯε Importer૚ Transformer૚ αʔϏεಠࣗ ςʔϒϧ දࣔσʔλ༻ ςʔϒϧ app lib