みてねのプロダクトを改善するエンジニアリング / Improve Family Album Mitene by Engineering

29f8fa629376e12157eb2a883df11c9b?s=47 _sobataro
November 13, 2018

みてねのプロダクトを改善するエンジニアリング / Improve Family Album Mitene by Engineering

長期間に渡ってプロダクトを開発・運用していると、しばしば細かいバグや改善点が出てきますが、新機能や新施策への取り組みとのバランスに悩むケースが少なくないと思います。ここでは主にプロダクトの既存機能の改善に関して、みてねにおける事例を紹介します。

29f8fa629376e12157eb2a883df11c9b?s=128

_sobataro

November 13, 2018
Tweet

Transcript

  1. ΈͯͶͷϓϩμΫτΛվળ͢Δ ΤϯδχΞϦϯά 2018-11-13 ΈͯͶͷMeetup #3 ˒4.7ͷՁ஋૑଄Λ࣮ݱ͢Δ։ൃϓϩηε
 ΈͯͶࣄۀ෦ ΤϯδχΞ দੴߒี

  2. ࣗݾ঺հ • দੴ ߒี (@_sobataro) • 2016೥ ϛΫγΟ৽ଔೖࣾ • 1೥໨:

    ΈͯͶ ΞϓϦɾαʔόΤϯδχΞ • 2೥໨ʙ: ΈͯͶ ίϯςϯπ։ൃΤϯδχΞ
  3. طଘͷϓϩμΫτΛվળ͢Δ࿩

  4. ΈͯͶ: 2015-04-13ϦϦʔε (ͦΖͦΖ4प೥)

  5. ௕ظؒϓϩμΫτΛ։ൃɾӡ༻͍ͯ͠Δͱ… • ίʔυ΍ӡ༻ͷଐਓԽ • Ϣʔβ૿ɺDB ͷϨίʔυ૿ʹΑΔੑೳྼԽ • ҙਤͤ͵ڍಈͷมߋ΍৽͍͠୺຤ɾOSͷग़ݱʹΑΔࡉ͔͍ෆ۩߹ͷൃੜ • ݹ͍ϥΠϒϥϦͷ

    deprecation, ੬ऑੑͷൃੜ • ্ه΋Ζ΋ΖʹΑΔCS ରԠͷίετ૿Ճ
  6. ͲΜͲΜ৽ػೳΛ࡞Γ͍ͨ ͚Ͳ طଘػೳ΋վળ͍ͨ͠

  7. طଘػೳΛվળ͢ΔͨΊͷ 3ͭͷऔ૊Έ

  8. 3ͭͷऔ૊Έ ͦͷ1 ஌ݟڞ༗ձ

  9. ஌ݟڞ༗ձ • ଐਓԽΛ๷͙஌ݟͷڞ༗ • ෛՙɾΤϥʔɾΫϥογϡͳͲͷ؂ࢹ • server: NewRelic, slow_log •

    iOS/Android: Crashlytics • ݹ͍ϥΠϒϥϦͷ؂ࢹ • server: bundle-outdated • iOS: pod-outdated, carthage-outdated • Android: Gradle ͷ Checkstyle plugin NewRelic Crashlytics (ը૾͸։ൃ؀ڥͷαϯϓϧͰ͢)
  10. 3ͭͷऔ૊Έ ͦͷ2 CS ୲౰౰൪ΤϯδχΞ

  11. Ҏલͷ CS ରԠ • CS issue ͸खΛڍ͛ͨ or ϥϯμϜʹׂΓৼΒΕͨΤϯδχΞ͕ରԠ •

    ஌ݟͷ͋Γͦ͏ͳΤϯδχΞʹ૬ஊ ✘ ଐਓԽ ✘ ෛ୲ײ͕େ͖͍ (ΞαΠϯ͞ΕΔͨͼʹ࠷େ൒೔͘Β͍ख͕ࢭ·Δ) ✘ CS ରԠʹ͔͔Δ։ൃνʔϜͷϦιʔε͕ෆಁ໌
  12. CS ୲౰౰൪ΤϯδχΞ • िସΓͰ CS ୲౰ΤϯδχΞΛ͓͘ (αʔόɾΞϓϦ֤1໊) • CS ୲౰ΤϯδχΞ͸جຊతʹ͢΂ͯͷ

    CS issue ΛରԠ͢Δ ✘ CS ୲౰౰൪ΤϯδχΞͷෛ୲͸େ͖͍ ✔ ଐਓੑΛഉআͰ͖Δ (ڧ੍తʹ஌ݟ͕ڞ༗͞ΕΔ) ✔ CS ରԠʹ͔͔Δ։ൃνʔϜͷϦιʔεΛͬ͘͟Γ೺ѲͰ͖Δ
  13. 3ͭͷऔ૊Έ ͦͷ3 ࣗಈԽ

  14. ࣗಈԽ ஌ݟڞ༗ձͰ֬ೝ͢Δ߲໨ͷࣗಈԽ • εϩʔΫΤϦग़͢܅ • ϥΠϒϥϦ؂ࢹ܅ CS ୲౰౰൪ͷෛՙΛԼ͛ΔऔΓ૊Έ • ఆܗରԠͷπʔϧԽ

    (CS νʔϜͰ׬݁Ͱ͖ΔΑ͏ʹ) • ػೳϨϕϧͰͷमਖ਼ (ͦ΋ͦ΋໰͍߹Θ͕ͤൃੜ͠ͳ͍Α͏ʹ)
  15. طଘػೳΛվળ͢ΔͨΊͷ
 3ͭͷऔ૊Έ • ஌ݟڞ༗ձ • CS ୲౰౰൪ΤϯδχΞ • ࣗಈԽ

  16. 3ͭͷऔ૊ΈΛࢧ͑Δ࢓૊Έ

  17. ୭΋͕Ҋ݅ΛఏҊͰ͖Δ࢓૊Έ ΈͯͶࣄۀ෦ͷ୭΋͕΍Γ͍ͨҊ݅ΛఏҊͰ͖Δ • ϓϩμΫτΦʔφʔ • ΤϯδχΞ • CS νʔϜ •

    ϓϩϞνʔϜ • ͦͷଞ୭Ͱ΋ʂ औΓ૊Έํ • Pivotal ͷ icebox ʹ suggest ϥϕϧΛ͚ͭͯ௥Ճ • ϦϑΝΠϯϝϯτͳͲͰഎܠΛڞ༗͠ɺόοΫϩάԽɾݟੵ΋Γɾ༏ઌॱҐ෇͚
  18. ϓϩμΫτΦʔφʔͷཧղ • Ҋ݅ (όοΫϩά) ͷ༏ઌ౓͚ͮ = ϓϩμΫτΦʔφʔͷ࢓ࣄ • എܠͷࣄ৘Λཧղͯ͠΋Β͑Δ͜ͱ͸େ͖͍ •

    ۓٸ౓ɺӨڹൣғɺӨڹͷେ͖͞ • ΋ͪΖΜཧղͯ͠΋Β͏ͨΊͷ౒ྗ͸ඞཁ
  19. ·ͱΊ

  20. ·ͱΊ • ΈͯͶ = ͦΖͦΖ4प೥ɻࡉ͔͍վળϙΠϯτ͕ͨ͘͞Μग़͖͍ͯͯΔ • طଘػೳΛվળ͢ΔͨΊͷ3ͭͷऔΓ૊Έ • ஌ݟڞ༗ձ •

    CS ୲౰౰൪ΤϯδχΞ • ࣗಈԽ • ͜ΕΒͷऔΓ૊Έ͸ ୭΋͕Ҋ݅ΛఏҊͰ͖Δ࢓૊Έ ͱ
 ϓϩμΫτΦʔφʔͷཧղ ʹࢧ͑ΒΕ͍ͯΔ