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

技術的負債へ向き合う ~開発速度をいかに向上させるか~

技術的負債へ向き合う ~開発速度をいかに向上させるか~

設計パターンをMVVMからFluxに変更し、開発速度を向上させた話です。

Takeshi Akutsu

October 28, 2020
Tweet

More Decks by Takeshi Akutsu

Other Decks in Programming

Transcript

  1. ٕज़తෛ࠴΁޲͖߹͏
    d։ൃ଎౓Λ͍͔ʹ޲্ͤ͞Δ͔d
    גࣜձࣾλΠϛʔ
    Ѩٱ௡ַࢤ

    View Slide

  2. View Slide

  3. ࠓ೔ͷྲྀΕ
    ٕज़తෛ࠴ͱ͸
    ٕज़తෛ࠴ͱ͸
    ͦͷ݁Ռੜ͡Δ໰୊
    λΠϛʔͰ͸ͲͷΑ͏ʹରԠ͔ͨ͠
    ։ൃ଎౓ͷվળ
    ෆ۩߹Λى͜͞ͳ͍ͨΊʹ͸
    ·ͱΊ

    View Slide

  4. ٕज़తෛ࠴ͱ͸
    ΢ΟΩϖσΟΞ
    ٕज़తෛ࠴ʢӳ5FDIOJDBMEFCUʣͱ͸ɺߦ͖౰ͨΓ
    ͹ͬͨΓͳιϑτ΢ΣΞΞʔΩςΫνϟͱɺ༨༟ͷͳ͍ιϑ
    τ΢ΣΞ։ൃ͕Ҿ͖ى݁͜͢Ռͷ͜ͱΛࢦ͢৽͍͠ൺᄻͰ͋
    Δɻʮઃܭ্ͷෛ࠴ EFTJHOEFCU
    ʯͱ΋ݴ͏ɻ

    View Slide

  5. ٕज़తෛ࠴ͱ͸
    ΢ΥʔυɾΧχϯΨϜ
    4IJQQJOHpSTUUJNFDPEFJTMJLFHPJOHJOUPEFCU
    ʢ࠷ॳͷίʔυΛग़ՙ͢Δ͜ͱ͸ɺआۚΛ͠ʹߦ͘ͷͱಉ͡Ͱ͋Δɻʣ

    View Slide

  6. ٕज़తෛ࠴ͱ͸
    ͭ·Γʜ
    ෛ࠴͸ɺ༨༟ͷͳ͍։ൃʹΑͬͯੜΈग़͞ΕΔ΋ͷͰ͋Γɺ
    αʔϏεΛ։ൃ্͍ͯ͘͠Ͱආ͚Δ͜ͱ͸ग़དྷͳ͍ɻ

    View Slide

  7. ٕज़తෛ࠴ͱ͸
    ͦͷ΄͔ʹ΋༷ʑͳݪҼ͕͋Δ
    ͦͷ࣌ͦͷ࣌Ͱͷ։ൃνʔϜɾ؀ڥͷมԽ
    ݴޠ࢓༷ɾ։ൃ؀ڥͷΞοϓσʔτ
    ϝϯόʔͷεΩϧ্ঢʢʹΑΓաڈͷίʔυ͕ෛ࠴ʹײ͡Δʣ
    ͳͲʜ

    View Slide

  8. ٕज़తෛ࠴ͱ͸
    ٕज़తෛ࠴ʹΑͬͯੜ͡Δ໰୊
    ։ൃ଎౓ͷ௿Լ
    ෆ۩߹͕ൃੜ͠΍͘͢ͳΔ

    View Slide

  9. λΠϛʔͰ͸
    ٕज़తෛ࠴ʹΑΓ
    ʮ։ൃ଎౓͕௿Լ͢Δʯ
    ʮෆ۩߹͕ൃੜ͠΍͘͢ͳΔʯ
    ͱݴ͏໰୊ʹͲ͏ରԠͨ͠ͷ͔ɻ

    View Slide

  10. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    ઃܭΛݟ௚͢͜ͱͰվળͨ͠
    .77.͔Β'MVY΁Ҡߦ·ͨ͠ɻ

    View Slide

  11. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    ۩ମతʹ͸Ͳ͏͍͏໰୊͕ى͍ͬͯͨ͜ͷ͔
    ΑΓྑ͍6*69Λ௥ٻ͢ΔͨΊɺ
    ࡉ͔͍ɾܧଓతͳ7JFXͷվળ͕ߦΘΕ͍ͯΔɻ
    ͔͠͠ɺσβΠϯ্͸ࠣࡉͳมߋͩͱͯ͠΋ઃܭͷ౎߹্ɺ
    मਖ਼ʹ૝૾Ҏ্ͷ޻਺͕ൃੜ͢Δ͜ͱ͕ଟʑ͋ͬͨ

    View Slide

  12. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    มߋલ
    มߋޙ
    σβΠϯ͸มߋ͞Ε͍ͯΔ͕ɺ
    ϏδωεϩδοΫ͸Կ΋มΘ͍ͬͯͳ͍ɻ
    σβΠϯ্ͷมߋՕॴ͸
    मਖ਼ཧ༝Λهೖ͢ΔλΠϛϯά͕มΘͬͨ
    ʮۀ຿࣌ؒʯͱʮٳܜ࣌ؒʯΛೖྗ͢Δը໘
    ͕ผʑʹͳͬͨ
    ϩδοΫ͸ʜ
    ʮۀ຿։࢝࣌ؒɾऴྃ࣌ؒɺٳܜ࣌ؒɺमਖ਼ཧ༝
    Λೖྗ͢Δʯͱݴ͏ߦҝ͸มΘΒͳ͍

    View Slide

  13. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    .77.࣌୅
    ̍ը໘ʹ͖ͭɺͭͷ7JFX.PEFMΛ࣋ͭͱݴ͏ํ਑Ͱ։ൃ͍ͯͨ͠

    View Slide

  14. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    .77.࣌୅ͷͭΒΈᶃ
    ֤ը໘͝ͱʹϩδοΫΛ͍࣋ͬͯΔͨΊɺͭͷը໘ͰߦΘΕ͍ͯͨॲཧ
    ͕σβΠϯͷมߋʹΑΓଞͷը໘ͰߦΘΕΔΑ͏ʹͳΔͱɺϩδοΫ·
    Ͱमਖ਼ΛՃ͑Δඞཁ͕ग़ͯ͘Δɻ
    ʢ7JFXͷมߋͳͷʹɺϩδοΫΛमਖ਼͠ͳ͍ͱ͍͚ͳ͍ͷ͸ਏ͍ ʣ
    ྫٳܜ࣌ؒͷೖྗ͕ผͷը໘ͰߦΘΕΔΑ͏ʹͳͬͨ

    View Slide

  15. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    .77.࣌୅ͷͭΒΈᶄ
    ෳ਺ͷը໘ʹ·͕ͨͬͯॲཧ͕ߦΘΕͨ࣌ɺ
    ը໘ؒͷ஋ͷड͚౉͕͠ਏ͍

    View Slide

  16. ʮ։ൃ଎౓ͷ௿Լʯͱ͍͏໰୊
    'MVY࣌୅
    ֤ػೳ͝ͱʹϩδοΫΛ؅ཧ͢ΔΑ͏ʹͳͬͨ
    ը໘͕෼ׂ͞ΕΑ͏͕ϩδοΫͷमਖ਼͸ෆཁ
    ڞ௨ͷ4UPSFΛͭอ࣋͢Δ͚ͩͰࡁΉͷͰɺෳ਺ͷը໘ʹ·ͨ
    ͕ͬͨॲཧ΋؆୯

    View Slide

  17. ʮෆ۩߹Λ๷͙ʯͨΊʹߦ͍ͬͯΔ͜ͱ
    ద੾ͳ୯ҐͰϞδϡʔϧ෼ׂΛߦ͍ͬͯΔ
    खಈͰ2"͠ʹ͍͘৔ॴʹ͸ςετΛపఈ

    View Slide

  18. ʮෆ۩߹Λ๷͙ʯͨΊʹߦ͍ͬͯΔ͜ͱ
    ᶃద੾ͳ୯ҐͰϞδϡʔϧ෼ׂΛߦ͏
    ॲཧ͸DMBTT಺Ͱด͡ΔΑ͏ʹ
    ద੾ͳ୯ҐʹDMBTTΛ੾Γ෼͚Δ
    ֤ػೳΛ'SBNFXPSLʹ੾Γ෼͚Δ

    View Slide

  19. ʮෆ۩߹Λ๷͙ʯͨΊʹߦ͍ͬͯΔ͜ͱ
    ᶄखಈͰ2"͠ʹ͍͘Օॴʹ͸ςετΛॻ͘
    શͯΛςετͰ୲อͰ͖͍ͯΔΘ͚Ͱ͸ͳ͍
    खಈͰͷ2"͕ࠔ೉ͳՕॴΛத৺ʹςετΛॻ͍͍ͯΔ
    ʢىಈपΓɺཁૉͷpMUFSTPSUɺ֤छঢ়ଶʣ
    ܕ΋͋Δछͷςετ
    ςετ͕͋Δͱ͸͍͑ɺಡΈ΍͍͢ίʔυ͸ৗʹҙࣝ

    View Slide

  20. ·ͱΊ
    ᶃద੾ͳઃܭύλʔϯΛ࠾༻͢Δ͜ͱͰ։ൃ଎౓Λ޲্͢
    Δ͜ͱ͕Ͱ͖ͨ
    ᶄద੾ͳ୯ҐͰϞδϡʔϧ෼ׂΛ͢Δ͜ͱͰෆ۩߹Λ๷͍
    Ͱ͍Δ
    ᶅखಈͰ2"͠ʹ͍͘৔ॴ͸ɺపఈతʹςετΛॻ͘

    View Slide

  21. ऴΘΓʹʜ
    ٕज़తͳෛ࠴͕θϩʹͳΔ͜ͱ͸ͳ͍ͱࢥ͍·͢ɻ
    ʮෛ࠴ʯʹෛ࠴ΛॏͶΔ͜ͱ͸ͤͣɺ
    ͜·ΊͳϦϑΝΫλϦϯάΛ͍ͯ͘͜͠ͱ͕
    ԿΑΓେ੾ͳͷͰ͸ͳ͍Ͱ͠ΐ͏͔ɻ

    View Slide