新規機能開発からモジュール分割を始めてみる

433ce798352c6d5ad363b3b585cb015d?s=47 Ryo Izumi
September 20, 2020

 新規機能開発からモジュール分割を始めてみる

433ce798352c6d5ad363b3b585cb015d?s=128

Ryo Izumi

September 20, 2020
Tweet

Transcript

  1. ৽نػೳ։ൃ͔Β Ϟδϡʔϧ෼ׂΛ࢝ΊͯΈΔ 3ZP*[VNJ J04%$+BQBO

  2. 3ZP*[VNJ OPIBOB *OD 5XJUUFS!J[N (JU)VC!SJ[VNJ

  3. None
  4. ࠓ೔࿩͢ࣄ w ػೳ։ൃͱฒߦͯ͠Ϟδϡʔϧ෼ׂΛߦͬͨ࿩ w ࣮ࡍʹײͨ͡ϝϦοτ΍σϝϦοτ΍ମݧஊ

  5. ϚϧνϞδϡʔϧ

  6. ࠷ۙͷΞϓϦ w ͭͷΞϓϦ͕ଟػೳԽ͍ͯ͠Δ w FYεʔύʔΞϓϦ

  7. ϊϋφ΋ྫ֎Ͱ͸ͳ͘ w ϑΥτϒοΫΛ࡞Δ͚ͩͷػೳ͔Β w ϓϨϛΞϜϑΥτϒοΫͳͲ঎ࡐͷ௥Ճ w (PPHMFϑΥτͱͷ࿈ܞͳͲ w εʔύʔΞϓϦ΄ͲͰ͸ͳ͍͕ 

    ػೳ͕૿͍͑ͯΔ
  8. ػೳ͕૿͑Δͱ w ίʔυϕʔε΋ڊେʹͳΔ w ઃܭͷෳࡶԽ w Ϗϧυ࣌ؒͷ૿Ճ w ˠ։ൃޮ཰ͷ௿Լ

  9. ϚϧνϞδϡʔϧ w ΞϓϦΛෳ਺Ϟδϡʔϧʹ෼ׂ͢Δ͜ͱͰ w ੹຿෼཭ʹΑΔӨڹൣғͷॖখ w ࠩ෼ϏϧυʹΑΔϏϧυ࣌ؒͷ୹ॖ

  10. طଘΞϓϦʹऔΓೖΕ͍͕ͨ 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU    ػೳ" ::7JFX$POUSPMMFS

    ::7JFX.PEFM ::.PEFM ::"1*$MJFOU    ػೳ# ;;7JFX$POUSPMMFS ;;7JFX.PEFM ;;.PEFM ;;"1*$MJFOU    ػೳ$
  11. طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU    ػೳ"

    ::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU    ػೳ# 'BU7JFX$POUSPMMFS    ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF
  12. طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU    ػೳ"

    ::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU    ػೳ# 'BU7JFX$POUSPMMFS    ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF Ͳ͔͜Β੾Γग़͍͍͔ͯ͠ ෼͔Βͳ͍
  13. طଘΞϓϦʹऔΓೖΕ͍͕ͨ 99.BOBHFSͱ͔ͷਆΫϥε 997JFX$POUSPMMFS 997JFX.PEFM 99.PEFM 99"1*$MJFOU    ػೳ"

    ::7JFX$POUSPMMFS ::7JFX.PEFM 99.PEFM ::"1*$MJFOU    ػೳ# 'BU7JFX$POUSPMMFS    ػೳ$ ґଘ ґଘ ڞ௨Ϋϥε ֎෦Ϧιʔε ґଘ ґଘ 4IBSFE*OTUBODF େن໛ϦϑΝΫλ͕ඞཁͦ͏ ৽نػೳ։ൃ΋ࢭΊΒΕͳ͍
  14. ৽نػೳ͔ΒϞδϡʔϧ෼ׂ

  15. ৽نػೳ͔ΒϞδϡʔϧ෼ׂ w ৽͍͠ࢪࡦͷػೳΛϞδϡʔϧʹ෼ׂ͢Δ લఏͰઃܭ͢Δ w ྫ (PPHMFϑΥτͷ࿈ܞ

  16. खॱ w ཁ݅ ࢓༷ͷ੔ཧ w ੹຿ΛܾΊΔ w JOQVUPVUQVUΛఆٛ w GSBNFXPSLͷ࡞੒

    w ։ൃ
  17. खॱཁ݅ ࢓༷ͷ੔ཧ w ཁ݅ ྫ  w (PPHMFΞΧ΢ϯτͱ࿈ܞ͕Ͱ͖Δ w ࣸਅ͕ҰཡͰ͖Δ

    w ࣸਅΛબ୒ͯ͠ΞϓϦͰར༻Ͱ͖Δ
  18. Ϟδϡʔϧ෼ׂ͠΍͍͢࢓༷ w ಠཱͨ͠৽نը໘ w طଘͷυϝΠϯ࢓༷΁ͷґଘ͕গͳ͍ w ϊϋφͰ͸طଘͷ*NBHF1JDLFS΋աڈʹϥΠϒϥϦͱͯ͠੾Γग़͠ ͍ͯͨ w IUUQTHJUIVCDPNOPIBOB/PIBOB*NBHF1JDLFS

    w ٯʹطଘը໘΍υϝΠϯ΁ͷґଘ౓͕ߴ͍࢓༷͸෼ׂͮ͠Β͍
  19. खॱ੹຿ΛܾΊΔ w (PPHMFΞΧ΢ϯτϩάΠϯ w (PPHMFΞΧ΢ϯτϩάΞ΢τ w (PPHMFϑΥτͷࣸਅऔಘ w ࣸਅબ୒

  20. ϑϨʔϜϫʔΫଆͷϧʔϧ w 4XJGU w ݹ͍࣮૷͸࣋ͪࠐ·ͳ͍

  21. ϑϨʔϜϫʔΫଆͷϧʔϧ w Ͳ͏ͯ͠΋ݹ͍࣮૷Λ࢖͍͍ͨ৔߹ 1SPUPDPM͚ͩఆ࣮ٛͯ͠૷͸"QQଆ͔Β஫ೖ͢Δ

  22. खॱJOQVUPVUQVUΛఆٛ w "QQͱϞδϡʔϧؒͰͷJOQVUPVUQVUΛఆٛ͢Δ

  23. खॱJOQVUPVUQVUΛఆٛ w "QQͱϞδϡʔϧؒͰͷJOQVUPVUQVUΛఆٛ͢Δ "1*5PLFO બ୒ͨࣸ͠ਅͷϦετ

  24. खॱGSBNFXPSLͷ࡞੒

  25. खॱ։ൃ w جຊతʹ͸ීஈͷ։ൃͱมΘΒͳ͍ w ΞϓϦଆʹެ։͢Δ΋ͷ͸໌ࣔతʹQVCMJD΍PQFOʹ͢Δ w αʔυύʔςΟͷϥΠϒϥϦΛ࢖͏৔߹͚ͩগ͠஫ҙ͕ඞཁ

  26. 5JQTϑϨʔϜϫʔΫଆͰϥΠϒϥϦΛ࢖͏ w $PDPB1PET w $BSUIBHF w 4XJGU1BDLBHF.BOBHFS

  27. $PDPB1PET w ϝΠϯλʔήοτʹ΋ ϥΠϒϥϦΛؚΊΔ

  28. $BSUIBHF w ϝΠϯλʔήοτʹ΋ ϦϯΫ͢Δ ϝΠϯλʔήοτ ϑϨʔϜϫʔΫ

  29. $BSUIBHF w DPQZGSBNFXPSLT͸ϝΠϯλʔήοτ͚ͩͰߦ͏

  30. 4XJGU1BDLBHF.BOBHFS w Ϟδϡʔϧଆ͚ͩʹೖΕΕ͹0,ͬΆ͍ w ˞ΞʔΧΠϒ·Ͱ͸֬ೝ͠·͕ͨ͠ετΞϦϦʔε͸ະ֬ೝͰ͢

  31. 4XJGU1BDLBHF.BOBHFS w ෳ਺ϞδϡʔϧͰѻ͍͍ͨ৔߹ w %ZOBNJD-JCSBSZ͸ෳ਺ʹϦϯΫՄೳ w 4UBUJD-JCSBSZ͸ෳ਺ϞδϡʔϧʹೖΕΑ͏ͱ͢ΔͱΤϥʔʹͳΔ w ෳ਺ϞδϡʔϧͰѻ͍͍ͨ৔߹͸ڞ௨Ϟδϡʔϧʹಋೖ͠ɺ ͦͷϞδϡʔϧΛհͯ͠࢖͏ͳͲ͢Δͱྑͦ͞͏

  32. खॱ։ൃ w جຊతʹ͸ීஈͷ։ൃͱมΘΒͳ͍ w ΞϓϦଆʹެ։͢Δ΋ͷ͸໌ࣔతʹQVCMJD΍PQFOʹ͢Δ w αʔυύʔςΟͷϥΠϒϥϦΛ࢖͏৔߹͚ͩগ͠஫ҙ͕ඞཁ

  33. ϦϦʔε

  34. ϝϦοτ

  35. ڞ௨Խ͢΂͖෦෼͕ݟ͑ͯ͘Δ w ࣮ࡍʹϞδϡʔϧଆͷ։ൃΛ͍ͯͯ͠ w ΞϓϦଆͷ&YUFOTJPOΛ࢖͍͍ͨέʔεͳͲ͕͋ͬͨ Ϟδϡʔϧͷ૬ޓࢀর͸Ͱ͖ͳ͍ͷͰͦͷ··Ͱ͸࢖͑ͳ͍ &YUFOTJPOͳͲ ࢖͍͍ͨ

  36. ڞ௨Խ͢΂͖෦෼͕ݟ͑ͯ͘Δ w ڞ௨ϞδϡʔϧͳͲ ࠓޙͷϞδϡʔϧ෼͚ͷ ώϯτ͕ಘΒΕΔ &YUFOTJPOͳͲ ڞ௨Ϟδϡʔϧ

  37. طଘίʔυʹनΘΕͳ͘ͳΔ w طଘͷԚ͍෦෼ͳͲΛൃݟ͢ΔͱϞνϕʔγϣϯ௿Լ ˠ৽ن։ൃͯ͠ΔͷʹӬԕʹϦϑΝΫλΛ࢝Ίͯ͠·ͬͨΓ w ৽نϞδϡʔϧΛ੾Δ͜ͱͰطଘͷߏ੒΍ίʔυΛࢀর͢Δػձ͕ ݮΓɺ্هͷΑ͏ͳ೰Έ͕গ͠ղফ͞Εͨ

  38. Өڹൣғͷॖখ w جຊతʹϞδϡʔϧ಺෦Ͱ׬݁Ͱ͖Δ w Өڹൣғ΋ݶΒΕΔͷͰ։ൃޮ཰΋ϦϦʔε࣌ͷ҆৺౓΋Ξοϓ w 2"΍Ϣʔβʔ໰͍߹ΘͤௐࠪͳͲ΋Ϟδϡʔϧ಺Ͱ׬݁

  39. ϝϦοτ w ڞ௨Խ͢΂͖෦෼͕ݟ͑ͯ͘Δ w طଘίʔυʹनΘΕͳ͘ͳΔ w Өڹൣғͷॖখ

  40. σϝϦοτ

  41. ϓϩδΣΫτϑΝΠϧͷίϯϑϦΫτ w λʔήοτͷ௥ՃͰൃੜͨ͠ίϯϑϦΫτͷղফ͸ࠔ೉ w Ұ෦$BQBCJMJUZͷઃఆΛਧ͖ඈ͹͠·ͨ͠

  42. 9DPEF(FO w IUUQTHJUIVCDPNZPOBTLPMC9DPEF(FO w σΟϨΫτϦߏ੒ͱ:".-ϑΝΠϧ͔Β ϓϩδΣΫτϑΝΠϧΛ࡞ΕΔπʔϧ w ϓϩδΣΫτϑΝΠϧͷ(JU؅ཧ͔Βղ์͞ΕΔ w ઌʹಋೖ͢΂͖ͩͬͨ

  43. Ϟδϡʔϧ෼ׂͷ୯Ґ͕ػೳ୯ҐʹͳΔ BQQ ػೳ" ػೳ# ػೳ$ ڞ௨Ϟδϡʔϧ BQQ 1SFTFOUBUJPO %PNBJO *OGSBTUSVDUVSF

    ػೳ୯Ґ ϨΠϠʔ୯Ґ
  44. Ϟδϡʔϧ෼ׂͷ୯Ґ͕ػೳ୯ҐʹͳΔ BQQ ػೳ" ػೳ# ػೳ$ ڞ௨Ϟδϡʔϧ BQQ 1SFTFOUBUJPO %PNBJO *OGSBTUSVDUVSF

    ͬͪ͜ͷ෼͚ํʹ͢Δͷ͕೉͘͠ͳΔ
  45. σϝϦοτ w ϓϩδΣΫτϑΝΠϧͷίϯϑϦΫτ w Ϟδϡʔϧ෼ׂͷ୯Ґ͕ػೳ୯Ґʹͳͬͯ͠·͏ w ந৅౓্͕͕ΔͷͰ࣮૷͕Ͳ͜ʹ͋Δ͔෼͔Γʹ͘͘ͳΔՄೳੑ

  46. ࠓޙͷల๬ w 9DPEF(FOͷಋೖ w طଘػೳͷϞδϡʔϧ෼ׂ w 0CKFDUJWF$ͳͲݹ͍ίʔυͷӅṭ w ࠓޙͷ৽ػೳͷϞδϡʔϧ෼ׂ w

    EZOBNJDGSBNFXPSL͕૿͑ͨ৔߹ͷରࡦ w ͳͲͳͲ
  47. ·ͱΊ w ৽نػೳ͔ΒϞδϡʔϧΛ෼͚Δͱ͍͏ࣄΛ΍ͬͯΈͯ w ڞ௨Խ͢΂͖෦෼ͳͲࠓޙͷϞδϡʔϧ෼ׂͷώϯτ͕ಘΒΕͨ w ػೳ͕૿͑ͯ΋ӨڹൣғΛ෼཭͢Δ͜ͱ͕Ͱ͖ͨ

  48. ·ͱΊ w ϞδϡʔϧΛ෼ׂ͢Δ͜ͱࣗମ͸ͦ͜·Ͱେม͡Όͳ͍ w ໖ີͳܭը΋େ੾͕ͩखΛಈ͔ͯ͠ΈΔ͜ͱ΋େ੾ w ಠཱͨ͠৽ػೳΛ࡞Δࡍ͸Ϟδϡʔϧ෼ׂΛ࢝ΊΔνϟϯε w ίʔυن໛͕૿͑ͯ΋։ൃޮ཰Λམͱ͞ͳ͍Α͏޻෉Λ͠Α͏ʂ

  49. 5IBOL:PV