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

Well-organized Transaction Script - リファクタリングの妥協...

Avatar for qsona qsona
June 14, 2022

Well-organized Transaction Script - リファクタリングの妥協的手法 -

Avatar for qsona

qsona

June 14, 2022
Tweet

More Decks by qsona

Other Decks in Technology

Transcript

  1. ίϯςϯπΠϯϙʔτͷίʔυ֓ཁ • େ͖͘ҎԼͷ3ͭͷؔ਺ʹ෼͔Εɺॱʹ࣮ߦ͞ΕΔ • 1. processContentData ...
 CSV, YAML Ͱߏ੒͞Εͨ


    ίϯςϯπσʔλΛશͯparse͠ɺ
 1ຕͷ JS Object ʹม׵͢Δ • 2. deleteAllContents ... DB ্ͷίϯςϯπΛશ࡟আ • 3. insertContents ... 1 Ͱ࡞ͬͨσʔλΛ DB ʹ౤ೖ͢Δ ໿ 700 ߦ, ࠷ਂ 4 ॏϧʔϓ͕ग़ݱ͢Δ τϥϯβΫγϣϯεΫϦϓτɻ ίʔυͷೝ஌ෛՙ͕ߴ͍
  2. ݁Ռ • ී௨ʹ͏·͍͘͘ (ຊ౰ʹී௨Ͱ͢Ͷɾɾɾ) • before: Ͳ͜ͰԿͷॲཧΛ΍͍ͬͯΔ͔͕ύοͱΘ͔Βͳ͍
 => after: ؔ਺ʹ෼ׂ͞Εɺ໊લ͕෇͚ΒΕͯɺΘ͔Γ΍͘͢ͳͬͨ

    • before: ϧʔϓ͕ଟॏʹͳ͍ͬͯͯม਺ͷείʔϓ͕෼͔Γʹ͍͘
 => after: ֤ϧʔϓ಺ͷॲཧ͕ؔ਺ʹͳͬͨͷͰɺείʔϓ͸Θ͔Γ΍͘͢ͳͬͨ • ෼ׂͨ͠୯ҐͰ୯ମςετ΋ॻ͚ΔΑ͏ʹ
  3. ϦϑΝΫλϦϯάଥڠϧʔτ (τοϓμ΢ϯܕ) • Lv.0 Ϣʔεέʔε͕΂ͬͨΓ௕ͬͨΒ͘͠ίʔυͰදݱ͞Ε͍ͯΔ
 (యܕతͳτϥϯβΫγϣϯεΫϦϓτ) • Lv.1 ؔ਺܈ʹ෼ղ͢Δ (Composed

    Method ύλʔϯ) • Lv.2 ؔ਺܈Λ public ʹͯ͠ɺͦΕͧΕςετΛॻ͘
 (Ծশ: Well-organized Transaction Script) • Lv.3 ֤ؔ਺܈ʹυϝΠϯϞσϧͱͯ͠ͷৼΔ෣͍Λ࣋ͨͤΔ
  4. ຊൃදͷ·ͱΊ • τϥϯβΫγϣϯεΫϦϓτΛϦϑΝΫλϦϯά͢Δͱ͖ɺ
 ࠷ॳ͔ΒυϝΠϯϞσϧΛߟ࡯͢Δख๏ (Ԧಓϧʔτ) ͱ
 Ұ୴ϢʔεέʔεΛ෼ղ͍ͯ͘͠ख๏ (ଥڠϧʔτ) ͕͋Δ •

    ଥڠϧʔτ͔ΒͰ΋ɺ࠷ऴతʹυϝΠϯϞσϧ͕ߟ࡯͞Εͨঢ়ଶ ʹొΔ͜ͱ͕Ͱ͖Δ • ͦ΋ͦ΋υϝΠϯΛߟ࡯͢Δҙຯ͕ബ͍ͱ͖΋͋ΔΑ
  5. എܠʹڵຯ΋ͬͯԼͬͨ͞ํ΁ • ͜ͷ୊ࡐͱͳͬͨτϥϯβΫγϣϯεΫϦϓτ
 ͕ੜ·ΕͨഎܠͳͲ͸
 jsconfjp 2021 Ͱొஃͨ͠ࢿྉ (ӈ) Λ
 ͥͻ͝ࢀর͍ͩ͘͞

    • ελσΟαϓϦͰ͸ɺڭҭ/ֶशυϝΠϯʹڵຯͷ͋Δ
 ΤϯδχΞΛืू͍ͯ͠·͢
 (ڵຯ͋Δํ Twitter @qsona ʹϝϯγϣϯ΍DM͍ͩ͘͞)