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

課題感から始める クラス設計と合意形成

課題感から始める クラス設計と合意形成

D96c7e61d2f394f1d0af66945181a230?s=128

きりみん

March 11, 2018
Tweet

Transcript

  1. ՝୊ײ͔Β࢝ΊΔ Ϋϥεઃܭͱ߹ҙܗ੒ Bonfire Android #3

  2. ࣗݾ঺հ • @kirimin • AnyPayגࣜձࣾ ॴଐ • AndroidΤϯδχΞ • όʔνϟϧϢʔνϡʔόʔ

    • React-NativeΤϯδχΞ
  3. ฐࣾͷϓϩμΫτ

  4. ࠓ೔ͷςʔϚ ʮαʔϏεͱઃܭʯ

  5. ઃܭɺߟ͑ͯ·͔͢ʁ

  6. ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏ੒ΛܾΊͯӡ༻͍ͯ͠Δ

  7. ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏ੒ΛܾΊͯӡ༻͍ͯ͠Δ • ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦෼ͷΫϥε ߏ੒͚ܾͩΊͯ͋ͱ͸࣮૷ऀ࣍ୈ

  8. ʲΞϯέʔτʳઃܭʹ͍ͭͯ • ͕ͬͪΓΫϥεߏ੒ΛܾΊͯӡ༻͍ͯ͠Δ • ωοτϫʔΫ·ΘΓͱ͔ج൫ͷ෦෼ͷΫϥε ߏ੒͚ܾͩΊͯ͋ͱ͸࣮૷ऀ࣍ୈ • શવΘ͔Βͳ͍ɻԶͨͪ͸งғؾͰΦϒδΣ Ϋτࢦ޲Λ΍͍ͬͯΔ

  9. ͍Ζ͍Ζͳઃܭύλʔϯ .71 .7$ .77. ""$ 'MVY 3FEVY

  10. ͳΜͰઃܭΛߟ͑Δඞཁ͕ ͋ΔΜͩΖ͏

  11. ͦ͜ʹ՝୊͕͋Δ͔Β

  12. ͑Β͍ͻͱʮMVP͕ΠέͯΔ Β͍͔͠Βɺ࣍ͷΞϓϦ͸ MVPͰ΍ͬͯͶʯ

  13. ·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦ͸MVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ

  14. ·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦ͸MVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ • ϝϯόʔʮͳΜͰ͜Μͳ໘౗ͳॻ͖ํ͠ͳ͍ͱ ͍͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔෼͔Βͳ ͍...ʯ

  15. ·ΕʹΑ͋͘Δޫܠ • ͑Β͍ͻͱʮMVP͕ΠέͯΔΒ͍͔͠Βɺ࣍ͷ ΞϓϦ͸MVPͰ࡞ͬͯࣗಈςετΛಋೖͶʯ • ϝϯόʔʮͳΜͰ͜Μͳ໘౗ͳॻ͖ํ͠ͳ͍ͱ͍ ͚ͳ͍Μͩ...ʯʮԿ͕ਖ਼͍͠ͷ͔෼͔Βͳ͍...ʯ • ՝୊ײ͕ೝࣝग़དྷ͍ͯͳ͍ͷʹઃܭͱݴΘΕͯ΋ ϝϦοτΛ࣮ײ͢Δͷ͸Ή͔͍ͣ͠

  16. શવΘ͔Βͳ͍ɻ Զͨͪ͸งғؾͰྲྀߦΓͷ ઃܭΛ΍͍ͬͯΔ

  17. ରࡦ

  18. 1.νʔϜͱͯ͠ग़དྷΔ͜ͱ

  19. ࠓͷϓϩδΣΫτͷ՝୊Λ ચ͍ग़͢ • Ͳ͜ʹͲΜͳॲཧ͕ॻ͔Ε͍ͯΔͷ͔෼͔Βͳ ͍ • ৽͍͠ॲཧΛͲ͜ʹॻ͚͹͍͍ͷ͔෼͔Βͳ͍ • ঢ়ଶ͕ແବʹෳࡶͰෆ޾ͳόά͕ࠞೖ͕ͪ͠ •

    ίʔυ͕ಡΈʹ͘͘վमίετ͕ߴ͍
  20. ࠓ͋Δ՝୊ΛղܾͰ͖ͦ͏ͳύ λʔϯΛಋೖ͠Α͏ • ٯʹ՝୊͕ಛʹແ͚Ε͹ແཧʹΧοίΠΠઃܭύλʔ ϯΛ࢖Θͳͯ͘΋͍͍ • ࢥ૝తʹਖ਼͍͠ΨονϦͨ͠ઃܭ͕ৗʹ༏Ε͍ͯΔ ͱ͸ݶΒͳ͍ɹ(શͯͷΫϥεΛinterfaceԽ͢Δͳ Ͳ) •

    ͨͩ͠ɺকདྷతͳ՝୊͕༧ݟग़དྷ͍͍ͯͯΔͳΒ࠷ ॳ͔ΒΨονϦ૊Ήͷ͸ѱ͘ͳ͍
  21. ݸਓతʹ࠷௿ݶܾΊ͓͍ͯͨํ ͕Αͦ͞͏ͳ͜ͱ • ࢖͏ϥΠϒϥϦͱ࢖͍ํ • DataBinding/RxJava/Retrofit/EventBus/etc... • σʔλΞΫηεॲཧͷݺͼग़͠ํ • View͔ΒݺͿ/Ϟσϧ͔ΒݺͿ/RepositoryతͳͷΛ࡞Δ/࡞Β

    ͳ͍ • ϏδωεϩδοΫΛॻ͘৔ॴ • ϞσϧΫϥεͬΆ͍΋ͷ͕͍ΖΜͳύοέʔδʹࢄΒ͹Γ͕ͪ
  22. 2.։ൃऀݸਓͱͯ͠ Ͱ͖Δ͜ͱ

  23. ࣮૷࣌ͷ͋Γ͕ͪͳ՝୊Λ஌Δ • Φεεϝͳͷ͸ݸਓͰ0͔ΒΞϓϦΛ࡞ͬͯΈΔ͜ͱ • ͦͦ͜͜ͷػೳΛ࣋ͬͨΞϓϦΛҰਓͰ࡞ΓɺԿ౓΋ػೳ վળͷΞοϓσʔτΛ͍ͯ͘͠ • ͍Ζ͍Ζͳ՝୊͕ݟ͑ͯ͘Δ • ྑ͔Εͱࢥͬͨઃܭ͕ͭΒΈΛੜΉͳͲͷ஌ݟ͕ಘΒΕΔ

    • ઃܭʹࣦഊͨ͠ܦݧ͸Ұੜͷࡒ࢈
  24. ཧ૝ • νʔϜʮ͜͏͍͏՝୊͕͋Δ͔Β͜ͷઃܭΛ ಋೖ͠Α͏ʯ • ϝϯόʔʮΘ͔Δʯ

  25. ͡Ό࣮͋ࡍʹͲ͏΍ͬͯಋೖ ͢Δͷʁ

  26. paymoͰͷྫ

  27. ఏҊ͢Δ • ॳظͷ࣮૷͸͍Ζ͍Ζͳ՝୊͕͋Δઃܭͩͬͨɹ (DroidKaigiͰͷൃදɺHow to improve your architecture and testsΛࢀর)

    • ·ͣ͸ேձ΍SlackͳͲͰ՝୊ײͱ΍Γ͍ͨ͜ͱΛप஌͢Δ • GitHubʹIssueΛཱͯΔ • จষϕʔεͰํ޲ੑʹ͍ͭͯٞ࿦͠νʔϜ಺Ͱ߹ҙ͢Δ
  28. None
  29. None
  30. None
  31. ۩ମҊΛݟͤΔ • αϯϓϧͱͯ͠ҰՕॴʹద༻͍ͨ͠ઃܭΛద༻͠ ͨϒϥϯνΛ࡞ΓɺPRΛग़͢ • ίʔυʹରͯ͠ϝϯόʔ͔Β޿͘ποίϛΛืΔ • ίʔυϕʔεͰߋʹٞ࿦͢Δ • ApproveΛ΋Β͍߹ҙͷҙࢥΛ໌֬ʹ֬ೝ͢Δ

  32. None
  33. ϦϑΝΫλΛ࣮ࢪ͢Δ • ৽࣮͘͠૷͢ΔՕॴ͸৽͍͠ઃܭʹ߹ΘͤΔ • ݹ͍Օॴ͸εέδϡʔϧͳͲͱ૬ஊ͠ͳ͕Β ॱ࣍ॻ͖׵͍͑ͯ͘

  34. େࣄͳ͜ͱ • ҰਓͰಥͬ૸Βͳ͍ • ৽͍͠ઃܭ͕ϝϯόʔײͰे෼ʹप஌͞Ε͍ͯͳ ͔ͬͨΓɺҙࣝ߹Θ͕ͤग़དྷ͍ͯͳ͍ͱɺ࣮૷ऀ ʹΑͬͯνάϋάʹͳͬͨΓɺετϨεͷݪҼʹ ͳΔ • ઃܭͷର৅͸ϓϩάϥϜ͕ͩɺେࣄͳͷ͸ਖ਼͍͠

    ՝୊ͷೝࣝͱίϛϡχέʔγϣϯ
  35. ઈର͋͠Θͤͳ ։ൃݱ৔ʹ͠Α͏ͳ

  36. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠