FatControllerからの卒業

 FatControllerからの卒業

2e8a28c2cafb195cc7b43bbca5e6da74?s=128

Yuki Kitagawa

May 31, 2019
Tweet

Transcript

  1. FatController͔Βͷଔۀ

  2. ࣗݾ঺հ • ๺઒ ༤ل • σβΠϯ&ΤϯδχΞϦϯά෦ • όοΫΤϯυ΍ϞόΠϧΞϓϦΛ୲౰ • PHP,

    Kotlin, Java, Swi6 • Reactive Extensions͕޷͖
  3. εϥΠυʹग़ͯ͘Δίʔυʹ͍ͭͯ • ͜ͷεϥΠυͰ͸ɺPHPͰઆ໌Λ͍͖ͯ͠· ͢ɻ • ϑϨʔϜϫʔΫ͸ɺLaravelΛ࠾༻͍ͯ͠· ͢ɻ

  4. ΞδΣϯμ • MVCͷ͓͞Β͍ • FatControllerͱ͸ • FatControllerΛଔۀ͢Δ3ͭͷϙΠϯτ

  5. MVCͷ͓͞Β͍

  6. MVCͬͯͳΜͧʁʁʁ

  7. MVCΞʔΩςΫνϟͱ͸ • Model View Controllerͷུ • ΞϓϦέʔγϣϯιϑτ΢ΣΞͷ಺෦σʔ λΛɺϢʔβʔ͕௚઀ࢀরɾฤू͢Δ৘ใ ͔Β෼཭͢Δɻ IUUQTKBXJLJQFEJBPSHXJLJ.PEFM@7JFX@$POUSPMMFS

  8. Model • γεςϜͷதͰϏδωεϩδοΫΛ୲౰ • σʔλ΁ͷΞΫηε΍ɺσʔλͷՃ޻Λߦ͏૚

  9. View • දࣔ΍ೖग़ྗͱ͍ͬͨॲཧΛ୲౰ • Controller͔Βड͚औͬͨσʔλΛදࣔ͢Δ ͨΊͷ૚

  10. Controller • Ϣʔβʔͷೖྗʹج͖ͮɼModelͱViewΛ੍ޚ • Model͔Βड͚औͬͨσʔλΛViewʹ౉͢૚

  11. None
  12. ࠓճͷςʔϚ

  13. FatController͔Βͷଔۀ

  14. FatControllerͱ͸ʁ

  15. FatControllerΛॻ͍ͨ ͜ͱͳ͍ਓʙʙʙʁʁ

  16. Θͨ͠͸͋Γ·͢ɻ

  17. None
  18. ͦ͏ɺ·͞ʹ͜ΜͳΜ

  19. ΍ͬͪΌ͏ؾ࣋ͪ΋Θ͔Δ

  20. ༉அͯ͠Δͱ͜͏ͳΔ

  21. ͱʹ͔͘ಈ͘ίʔυॻ͍ ͯͨΒ͜͏ͳͬͪΌͬͨ…

  22. େৎ෉ɺΑ͋͘Δ࿩Ͱ͢ɻ

  23. ͳͥFatControllerʹͳΔͷ͔ • Model΍ϏδωεϩδοΫͰ΍Δ΂͖͜ͱ ͕Controllerʹؚ·ΕΔ • Controllerͷ੹຿͕େ͖͗͢Δ

  24. FatControllerͷμϝͳͱ͜Ζ •ίʔυ͕௕͘ͳΓɺՄಡੑ͕͚ܽΔ •ಉ͡Α͏ͳॲཧΛෳ਺ͷControllerʹ΋ॻ͘͜ͱʹͳΔͷͰɺ࠶ ར༻ੑ͕͚ܽΔ •νʔϜͰ։ൃ͢ΔͱɺແବͳίϯϑϦΫτ͕ى͖Δ •࣮૷ऀҎ֎͕खΛ෇͚ΒΕͳ͘ͳΓɺଐਓతͳίʔυʹͳΔ •ϝιου಺ͷ੹຿͕େ͖͗ͯ͢ςετΛॻ͘ͷ͕༰қͰ͸ͳ͍

  25. αϯϓϧίʔυͷ࢓༷ • jsonΛදࣔ͢Δ͚ͩͷϖʔδΛ࡞Δ • ֎෦APIΛୟ͖ɺjsonΛड͚औΔ • ड͚औͬͨjson͸Cacheͱͯ͠ɺอଘ͓ͯ͘͠ • ֎෦API͔ΒjsonΛड͚औΓʹࣦഊͨ͠ΒɺCache͔Βऔ Γग़͢

  26. Controllerʹશ෦ॻ͍ͯΈΔ

  27. None
  28. None
  29. None
  30. ʮ৚݅ʹΑͬͯ͸ผͷAPIΛୟ͍ͯ…ʯ Έ͍ͨͳ࢓༷ͷ௥Ճ͕͖ͨΒਏ͘ͳ͍ʁ

  31. FatControllerΛଔۀ 3ͭͷϙΠϯτ

  32. 3ͭͷϙΠϯτ 1. ϏδωεϩδοΫΛΫϥεʹͯؔ͠৺ࣄΛ ෼཭ͤ͞Δ 2. ControllerͱϏδωεϩδοΫͷ΍ΓऔΓ ΛݮΒ͢ 3. inteIaceΛ࣮૷ͯ͠มߋʹڧ͘͢Δ

  33. 1. ϏδωεϩδοΫΛΫϥε ʹͯؔ͠৺ࣄΛ෼཭ͤ͞Δ

  34. ֎෦APIΛୟ͘

  35. None
  36. None
  37. JSONΛCacheʹอଘ Cache͔ΒJSONΛऔΓग़͢

  38. None
  39. None
  40. 2. ControllerͱϏδωεϩδοΫͷ ΍ΓऔΓΛݮΒ͢

  41. ControllerͱϏδωεϩδοΫΛ ஥հ͢ΔDataStoreΫϥεΛ࣮૷͢Δɻ

  42. None
  43. None
  44. None
  45. Ϋϥεͷґଘؔ܎

  46. 3. InteIaceΛఆٛͯ͠ มߋʹڧ͘͢Δ

  47. None
  48. None
  49. None
  50. None
  51. DIίϯςφ

  52. ΋͠Cache͔DBͷͲͪΒ͔࢓ ༷͕ܾ·Βͳ͍͚Ͳɺ։ൃ͸ ࢭΊͳ͍ͰͱݴΘΕͨΒʁ

  53. None
  54. None
  55. ΠϯελϯεΛมߋ͢Δ͚ͩ Ͱɺ࢓༷มߋʹରԠͰ͖Δʂ

  56. ·ͱΊ • ؔ৺ࣄΛ෼཭ͯ͠ΫϥεͷઃܭΛ͢Δ • ControllerͱϏδωεϩδοΫͷ΍ΓऔΓΛݮΒ͢ • InteIaceΛఆٛͯ͠มߋʹڧ͘͢Δ • DIίϯςφͰΠϯελϯεͷ੾Γସ͑ͯ࢓༷มߋʹର ԠͰ͖Δ

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