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

さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結合設計/Loosely Coupled Design Learning with Clean Architecture

さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結合設計/Loosely Coupled Design Learning with Clean Architecture

2018/06/06 に開催された「Unity テスト完全に理解した」という勉強会での発表資料です。

Tetsuya Mori
PRO

June 06, 2018
Tweet

More Decks by Tetsuya Mori

Other Decks in Technology

Transcript

  1. גࣜձࣾΩοζελʔ CTO
    ৿ɹ఩࠸
    ͯ͞͸ີ݁߹ͩͳΦϝʔ
    Clean Architecture ͰֶͿ
    ςετϑϨϯυϦʔͳૄ݁߹ઃܭ
    Unity ςετ׬શʹཧղͨ͠ @ 2018/06/06

    View Slide

  2. 2
    ͜Μ͹Μ͸ʂ

    View Slide

  3. 3
    ಥવͰ͕͢
    ઃܭਤͷݕূ༻ઃܭਤ
    ςετɺॻ͍ͯ·͔͢ʁ

    View Slide

  4. 4
    ࢲ͸ɺ࠷ۙ·Ͱ
    ॻ͍͍ͯ·ͤΜͰͨͬ͠ʂ

    View Slide

  5. r΋ΜΓ͌ઌੜ
    l͋ͳͨͨͪͷதͰςετΛॻ͍͍ͯΔऀ͕ɺ
    ·ͣɺࢲʹੴΛ౤͛ͳ͍͞ɻz
    5

    View Slide

  6. 6
    ͋͋ͬʂੴΛ౤͛ͳ͍Ͱʂ
    ϚαΧϦΛ౤͛ͳ͍Ͱʂʂʢ੾࣮ʣ

    View Slide

  7. ࣗݾ঺հ
    7

    View Slide

  8. w৿ɹ఩࠸ʢBLB΋ΜΓ͌ઌੜʣ
    w೥࡛ۄݝ࢈
    wגࣜձࣾΩοζελʔ$50
    wࡀϲ݄ͷ່ʹκοίϯ-07&
    w͓ञͱ߹এͱϓϩάϥϛϯά͕झຯ
    w5XJUUFS!NPOSZ(JU)VC!NPOSZ
    8
    Who am I ?

    View Slide

  9. w ࢠͲ΋޲͚εϚϗΞϓϦ

    ։ൃͳͲ
    w ೥͋ͨΓ͔Β

    6OJUZΨοπϦ
    w ͬ͜͝ϥϯυ

    ྦྷܭສ%-
    w "QQ4UPSF(PPHMF1MBZ

    ʹͯࢠͲ΋޲͚ΧςΰϦ

    ϥϯΩϯά501
    9
    ͓͠͝ͱ

    View Slide

  10. લஔ͖
    10

    View Slide

  11. 11
    ࠓճ͸

    View Slide

  12. 12
    ϓϩδΣΫτͷίʔυΛ
    ςετ͠қ͘͢Δख๏ʹ
    ͍͓ͭͯ࿩͠͠·͢ɻ

    View Slide

  13. ΞδΣϯμ
    13

    View Slide

  14. w6OJUZςετʹ͓͚Δ՝୊
    wૄ݁߹ͷجຊతͳߟ͑ํ
    w$MFBO"SDIJUFDUVSFʹ͍ͭͯ
    w$"'6ʹ͍ͭͯ
    14
    ͓͠ͳ͕͖

    View Slide

  15. 15
    ຊ୊

    View Slide

  16. w6OJUZςετʹ͓͚Δ՝୊
    wૄ݁߹ͷجຊతͳߟ͑ํ
    w$MFBO"SDIJUFDUVSFʹ͍ͭͯ
    w$"'6ʹ͍ͭͯ
    16
    ͓͠ͳ͕͖

    View Slide

  17. Unity ςετʹ͓͚Δ՝୊
    17

    View Slide

  18. w୯ମςετ6OJU5FTU
    w݁߹ςετ*OUFHSBUJPO5FTU
    w૯߹ςετ4ZTUFN5FTU
    18
    ςετ is Կʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  19. wʮ͍΍ɺγϯϓϧͳΫϥεͳΒ65ॻ͚ΔΜ͢Αʯ
    wঢ়ଶΛඞཁͱ͢Δςετ͕γϯυΠ
    w֎෦σʔλʹґଘ͢Δςετ΍ɺ
    4DSJQUBCMF0CKFDUͷσʔλʹґଘ͢Δςετ͕

    γϯυΠ
    w7JFX .POP#FIBWJPVS
    ʹґଘ͢Δͱ͔ͳΔͱ

    ઈ๬త
    19
    Կނɺॻ(͔|͚)ͳ͍ʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  20. wʮ͍΍ɺ1MBZ.PEFςετ͋Δ΍Μʯ
    w͍͟΍ͬͯΈΔͱɺ৭ʑͳ՝୊͕

    ݟ͑ͯ͘Δ
    20
    Կނɺॻ(͔|͚)ͳ͍ʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  21. w͋ΔΫϥε͸ͭҎ্ͷΫϥεͷ

    ΠϯελϯεΛඞཁͱ͍ͯ͠Δ
    w৔߹ʹΑͬͯ͸ɺͦΕΒͷ

    Πϯελϯε͸ߋʹผͷΫϥεͷ

    ΠϯελϯεΛඞཁͱ͍ͯ͠Δ

    ͳΜͯ͜ͱ΋
    21
    ՝୊ʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  22. wσʔλͷݩωλʹڌΒͣɺσʔλΛ

    औಘɾઃఆ͢ΔॲཧΛςετ͍ͨ͠
    w<0CTPMFUF>3FTPVSDFT-PBE

    w6OJUZ8FC3FRVFTU
    wϩʔΧϧΩϟογϡ
    wFUD
    22
    ՝୊ʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  23. w7JFXͷॲཧ͕λοϓೖྗΛલఏʹͯ͠
    ͍Δ
    wଞͷ(BNF0CKFDU͕ॳظԽ͞Ε͍ͯΔ
    ίτΛલఏʹ͍ͯ͠Δ
    w4JOHMFUPOͱ͔ͰલͷγʔϯͰઃఆ͞
    Εͨ஋Λඞཁͱ͢Δ
    23
    ՝୊ʁ
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  24. 24
    ͜͏͍͏ঢ়ଶ

    View Slide

  25. 25
    is

    View Slide

  26. 26
    ີ݁߹

    View Slide

  27. 27
    ີ݁߹

    View Slide

  28. 28
    ີ݁߹

    View Slide

  29. 29

    View Slide

  30. w4JOHMFUPO.POP#FIBWJPVSűŒŕŰŖ
    wTUBUJD͓͡͞Μ
    w ߦΛ௒͑Δ6QEBUF

    30
    ີ݁߹
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  31. wͪΐͬͱؾΛൈ͘ͱ͙͢͜͏ͳΔ
    w݁߹Λ΄Ͳ͍ͯૄ݁߹ʹ͠Α͏ʂ
    31
    ີ݁߹
    Unity ςετʹ͓͚Δ՝୊

    View Slide

  32. 32
    ͦͷลΛ౿·͑ͯ

    View Slide

  33. w6OJUZςετʹ͓͚Δ՝୊
    wૄ݁߹ͷجຊతͳߟ͑ํ
    w$MFBO"SDIJUFDUVSFʹ͍ͭͯ
    w$"'6ʹ͍ͭͯ
    33
    ͓͠ͳ͕͖

    View Slide

  34. ૄ݁߹ͷجຊతͳߟ͑ํ
    34

    View Slide

  35. 35

    View Slide

  36. 36
    Ҏ্ɻ

    View Slide

  37. 37
    ………ɻ

    View Slide

  38. 38
    ૄ݁߹ͷͨΊͷ

    ςΫχοΫΛʢࡶʹʣ঺հ

    View Slide

  39. w4JOHMF3FTQPOTJCJMJUZ1SJODJQMF
    w0QFODMPTFEQSJODJQMF
    w-JTLPWTVCTUJUVUJPOQSJODJQMF
    w*OUFSGBDFTFHSFHBUJPOQSJODJQMF
    w%FQFOEFODZJOWFSTJPOQSJODJQMF
    39
    SOLID ݪଇ
    ૄ݁߹ͷجຊతͳߟ͑ํ

    View Slide

  40. w୯Ұ੹೚ͷݪଇ
    w։์ด࠯ͷݪଇ
    wϦείϑͷஔ׵ݪଇ
    wΠϯλϑΣʔε෼཭ͷݪଇ
    wґଘੑٯసͷ๏ଇ
    40
    SOLID ݪଇ
    ૄ݁߹ͷجຊతͳߟ͑ํ

    View Slide

  41. 41

    View Slide

  42. w40-*%ݪଇ͕कΒΕ͍ͯΔίʔυ͸

    ͦͷҰͭҰͭʹ͍ͭͯɺؔ৺ͷ෼཭͕

    ߦΘΕ͍ͯΔͱݴ͑Δ
    w͢ͳΘͪɺݸʑͷίʔυʹ͓͚Δ

    ςετର৅ͷؔ৺ࣄ͕গͳ͍
    w͢ͳΘͪɺૄ݁߹ͩͱݴ͑Δ
    42
    SOLID ݪଇ
    ૄ݁߹ͷجຊతͳߟ͑ํ

    View Slide

  43. wૄ݁߹ͳγεςϜʹର͢Δςετ͸

    ͭͷςετίʔυ͕ෛ͏੹຿͕ڱ͍
    wςετΛ࣮ࢪ͢Δࡍͷ४උॲཧ͕

    গͳ͘ͳΔέʔε͕ଟ͍
    43
    ૄ݁߹ × ςετ
    ૄ݁߹ͷجຊతͳߟ͑ํ

    View Slide

  44. wۃ࿦ͱͯ͠͸ɺ֤ཁૉʹର͢Δ65͕

    ॻ͔Ε͍ͯΕ͹*5͸ͦ͜·Ͱ

    ؤுΒͳͯ͘΋ࡁΉ
    44
    ૄ݁߹ × ςετ
    ૄ݁߹ͷجຊతͳߟ͑ํ

    View Slide

  45. 45
    ͰʁHow to ૄ݁߹ʁ

    View Slide

  46. w6OJUZςετʹ͓͚Δ՝୊
    wૄ݁߹ͷجຊతͳߟ͑ํ
    w$MFBO"SDIJUFDUVSFʹ͍ͭͯ
    w$"'6ʹ͍ͭͯ
    46
    ͓͠ͳ͕͖

    View Slide

  47. Clean Architecture ʹ͍ͭͯ
    47

    View Slide

  48. 48
    ͷɺલʹ

    View Slide

  49. w͜͜·Ͱ͸୯ҰͷΫϥεʹؔ͢Δ

    ؔ৺ͷ෼཭ʹ͍ͭͯ
    wҰͭࢹ࠲Λ֦͛ͯϨΠϠʔʹؔ͢Δ

    ؔ৺ͷ෼཭ʹ͍ͭͯߟ͑Δ
    49
    ؔ৺ͷ෼཭
    Clean Architecture ʹ͍ͭͯ

    View Slide

  50. wιϑτ΢ΣΞΞʔΩςΫνϟ
    ʹԙ͍ͯɺҰൠʹҎԼͷ

    Α͏ʹϨΠϠʔΛ෼͚Δ

    ʢίτ͕ଟ͍ʣ
    w1SFTFOUBUJPO ݟͨ໨

    w%PNBJO ϩδοΫ

    w%BUB σʔλ

    50
    ؔ৺ͷ෼཭ for ϨΠϠʔ
    Presentation
    Domain
    Data
    Clean Architecture ʹ͍ͭͯ

    View Slide

  51. w.7$΍.71ͳͲͷ

    ΞʔΩςΫνϟʹΑΓ

    1SFTFOUBUJPOͱ%PNBJO

    ͷ෼཭͕࣮ݱ͞ΕΔ
    w֤ΞʔΩςΫνϟͰ

    ෼཭ͷ۩ମతͳखஈ͸

    ༷ʑ
    w.71΍.77.ͩͱ

    3YΛ࢖͏ͷ͕Ұൠతʁ
    51
    ؔ৺ͷ෼཭ for ϨΠϠʔ
    Presentation
    Domain
    Data
    Clean Architecture ʹ͍ͭͯ

    View Slide

  52. w%PNBJOͱ%BUBͷ෼཭͸

    ֤छσβΠϯύλʔϯ͕

    ୲͏͜ͱ͕ଟ͔ͬͨ
    wͱ͍͏͔ɺ.7Ͱ͸

    %PNBJO૚Ҏ߱ʹ͍ͭͯͷ

    ੹຿ΛΞʔΩςΫνϟ

    ͱͯ͠͸ෛ͍ͬͯͳ͍ײ͡
    52
    ؔ৺ͷ෼཭ for ϨΠϠʔ
    Presentation
    Domain
    Data
    Clean Architecture ʹ͍ͭͯ

    View Slide

  53. wͰɺͦͷล΋ఆٛͨ͠

    ΞʔΩςΫνϟ͕ొ৔͢Δ
    w)FYBHPOBM"SDIJUFDUVSF
    w0OJPO"SDIJUFDUVSF
    w$MFBO"SDIJUFDUVSF
    53
    ؔ৺ͷ෼཭ for ϨΠϠʔ
    Presentation
    Domain
    Data
    Clean Architecture ʹ͍ͭͯ

    View Slide

  54. 54
    Α͏΍͘ຊ୊

    View Slide

  55. w6ODMF#PC 3PCFSU$.BSUJO
    ࢯ͕
    ೥݄ʹఏҊ
    wJ04ͷ7*1&3ͳΜ͔΋ίϨ͕ݯྲྀ
    55
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  56. 56
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  57. 57
    ͳΔ΄ͲɺΘ͔ΒΜɻ

    View Slide

  58. 58
    ࢲͳΓʹղऍͯ͠Έͨ

    View Slide

  59. wϨΠϠʔͷ໾ׂΛఆٛ͢Δ
    wϨΠϠͷ੹຿Λ໌֬Խ
    wOBNFTQBDFͳͲͰ

    ෼͔Γ΍͘͢͢Δ
    59
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  60. wґଘͷϧʔϧΛकΔ
    wؔ৺ͷ޲͖͸Ұํ޲
    wݪଇతʹಉϨΠϠʔؒ͸

    ґଘͤ͞ͳ͍
    wϨΠϠʔΛඈͼӽ͑ͳ͍
    60
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  61. wϨΠϠʔఆٛ͸ࣗ༝
    w਺ͱ͔͸ෆఆ
    wϓϩμΫτຖʹॊೈʹ
    w଍Γͳ͖Ό૿΍͢
    61
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  62. wϨΠϠʔؒͷؔ৺Λ෼཭
    w40-*%ݪଇ
    wJOUFSGBDFΛ༻͍ͯ

    ۩৅Ϋϥε΁ͷґଘഉআ
    w%FQFOEFODZ*OKFDUJPOT
    62
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  63. wಉ৺ԁͷਤ͸ؔ৺ͷ޲͖
    w಺ଆ͸֎ଆΛ஌Βͳ͍
    w(BUFXBZT͸%#͕

    Ͳ͏΍ͬͯσʔλΛ

    ѻ͏͔͸஌Βͳ͍ɺͱ͔
    wσʔλͷྲྀΕ͸ผͷ͓࿩
    wӈԼͷਤ͕ιϨ
    63
    Clean Architecture
    Clean Architecture ʹ͍ͭͯ

    View Slide

  64. 64
    ΜͰ

    View Slide

  65. 65
    ͜ΕΛ Unity ʢ͔ͬͯ C#ʣ

    Ͱ࣮૷ͯ͠Έͨ

    View Slide

  66. w6OJUZςετʹ͓͚Δ՝୊
    wૄ݁߹ͷجຊతͳߟ͑ํ
    w$MFBO"SDIJUFDUVSFʹ͍ͭͯ
    w$"'6ʹ͍ͭͯ
    66
    ͓͠ͳ͕͖

    View Slide

  67. CAFU ʹ͍ͭͯ
    67

    View Slide

  68. w$MFBO"SDIJUFDUVSF'PS6OJUZͷུ
    wʮ͔;ʔʯͱಡΉ
    wώωϦ͕ͳ͍ͱ͔ݴΘͳ͍ɻ
    w.*5-JDFOTFͳ044
    [email protected]
    68
    CAFU is Կʁ
    CAFU ʹ͍ͭͯ

    View Slide

  69. wجຊతʹ͸JOUFSGBDFͷΈΛఏڙ
    w6OJUZͱର࿩͢Δ্ͰඞཁʹͳΔ

    ΫϥεΛఏڙ
    wΩοζελʔͷΞϓϦ։ൃͰ

    ௒ઈ࢖ͬͯΔ
    69
    CAFU is Կʁ
    CAFU ʹ͍ͭͯ

    View Slide

  70. 70
    ϨΠϠʔఆٛ

    View Slide

  71. 71
    ϨΠϠʔఆٛ
    CAFU ʹ͍ͭͯ

    View Slide

  72. 72
    ґଘؔ܎
    CAFU ʹ͍ͭͯ

    View Slide

  73. w.POP#FIBWJPVSͱର࿩͠

    ݟͨ໨Λ࢘ΔϨΠϠʔ
    w1SFTFOUFSͷΈґଘՄ
    73
    Presentation / View
    CAFU ʹ͍ͭͯ

    View Slide

  74. w7JFXͱ6TF$BTFΛܨ͙ϨΠϠʔ
    w6TF$BTF͸ޙड़
    wঢ়ଶΛ࣋ͨͳ͍
    74
    Presentation / Presenter
    CAFU ʹ͍ͭͯ

    View Slide

  75. wϏδωεϩδοΫͷ࣮૷ͦͷ΋ͷ
    wܭࢉॲཧͳͲΛ୲͏
    wޙड़ͷ.PEFMͱͯ͠දݱ͞ΕΔ

    ঢ়ଶΛอ࣋ͨ͠Γ͢Δ
    75
    Domain / UseCase
    CAFU ʹ͍ͭͯ

    View Slide

  76. wओʹ7JFXͰͷར༻Λ໨తͱͨ͠

    σʔλͷߏ଄
    w6OJ3YΛ௨ͯ͡7JFXʹૹΒΕΔ
    w3YετϦʔϜΛؚΊͨঢ়ଶΛ؅ཧ
    76
    Domain / Model
    CAFU ʹ͍ͭͯ

    View Slide

  77. wޙड़ͷ&OUJUZͱ.PEFMͱΛ૬ޓม׵
    ͢ΔͨΊͷTranslate()ϝιουΛ

    උ͑Δ
    w֎෦࢓༷ͷมߋΛ6TF$BTF΍7JFX
    ʹ఻೻ͤ͞ͳ͍ͨΊʹఆٛ
    77
    Domain / Translator
    CAFU ʹ͍ͭͯ

    View Slide

  78. w%BUBϨΠϠʔͱର࿩͢ΔͨΊͷ

    ϨΠϠʔ
    wσʔλΛಡΈॻ͖͢ΔͨΊͷ

    ΠϯλϑΣʔεΛ࣋ͭ
    78
    Domain / Repository
    CAFU ʹ͍ͭͯ

    View Slide

  79. wσʔλͷߏ଄Λఆٛͨ͠ϨΠϠʔ
    wσʔλͷ࣮ମ͕ԿͰ͋Εɺ

    ߏ଄දݱͱͯ͠͸ҰͭͷΫϥεͰද͢
    w4DSJQUBCMF0CKFDU͕ϝϯυΠʜɻ
    79
    Data / Entity
    CAFU ʹ͍ͭͯ

    View Slide

  80. wσʔλͷऔΓѻ͍Λ࣮૷ͨ͠ϨΠϠʔ
    w4DSJQUBCMF0CKFDUͱ͔ɺ

    8FC"1*ܦ༝ͷ+40/ͱ͔ɺ

    42-JUFܦ༝ͷσʔλͱ͔ɺFUD
    80
    Data / DataStore
    CAFU ʹ͍ͭͯ

    View Slide

  81. wFOVNͱ͔DPOTUతͳ஋Λ؅ཧ͢Δ
    ͨΊͷ"QQMJDBUJPOϨΠϠʔ
    w%*༻ͷ'BDUPSZΫϥεͱ͔Λ

    ֨ೲ͢Δ6UJMJUZϨΠϠʔ
    81
    ͦͷଞ
    CAFU ʹ͍ͭͯ

    View Slide

  82. wམͪϞϊήʔϜΛྫʹղઆ
    wʙ৭ͷάϛ͕

    ݸηοτͰམԼ
    wͭἧ͏ͱফ͑Δ
    wළͷ࠷্ஈ·Ͱୡͨ͠Β

    ήʔϜΦʔόʔ
    wͦͷ࣌఺ͷείΞΛه࿥
    82
    ྫ͑͹
    CAFU ʹ͍ͭͯ

    View Slide

  83. • Controller
    w γʔϯ੍ޚ
    w 1SFTFOUFSॳظԽ
    • Gummi
    w ߱ͬͯ͘Δάϛ

    •Floor
    wϘτϧͷচ
    •Ceil
    wϘτϧͷఱҪ
    •Wall
    wϘτϧͷน
    83
    Presentation / View
    CAFU ʹ͍ͭͯ

    View Slide

  84. w Gummiʹ.PDLΠϕϯτ͕ඈΜͰ͖ͨΒ

    .PDL1SFTFOUFSͷϝιου͕ݺ͹ΕΔ͔ʁςετ
    w .PDL1SFTFOUFSͷ3YετϦʔϜʹ

    ஋͕ྲྀΕ͖ͯͨΒWall͕ΤϑΣΫτΛ

    *OTUBOUJBUF͢Δ͔ʁςετ
    84
    Presentation / View
    CAFU ʹ͍ͭͯ

    View Slide

  85. •StagePresenter
    wγʔϯैଐ1SFTFOUFS
    85
    Presentation / Presenter
    CAFU ʹ͍ͭͯ

    View Slide

  86. 86
    Presentation / Presenter
    CAFU ʹ͍ͭͯ
    w StagePresenterͷ֤ϝιουΛςετ
    w 6TF$BTFͷΠϯελϯε͸શͯ.PDL
    w 1SFTFOUFSϨΠϠʔ͸ςετॻ͘Ձ஋௿Ί

    View Slide

  87. •GummiStateUseCase
    wεςʔδதͷάϛͷঢ়ଶ
    Λ؅ཧɾܭࢉ
    wάϛண஍ˠ࠶ܭࢉͱ͔
    wͪ͗Ε൑ఆͱ͔
    •ScoreUseCase
    wಘ఺Λ؅ཧɾܭࢉ
    •StageUseCase
    wεςʔδͷߏ੒Λ؅ཧ
    wԿ৭ͷάϛΛग़͢ʁ
    wམԼεϐʔυ͸ʁ
    87
    Domain / UseCase
    CAFU ʹ͍ͭͯ

    View Slide

  88. 88
    Domain / UseCase
    CAFU ʹ͍ͭͯ
    w ֤6TF$BTFͷQVCMJDϝιουΛςετ
    w ೖྗ΍ग़ྗ͸1SJNJUJWFͳ஋΍JOUFSGBDFΛ

    ௨ͯ͡ߦΘΕΔϋζ
    w ScoreUseCaseͷ&OUJUZ΍.PEFM͸.PDL͢Δ

    View Slide

  89. •GummiModel
    wάϛҰͭ෼Λදݱ
    w৭ͱ͔4UBUFͱ͔
    •GummiMapModel
    wεςʔδ಺ͷશάϛ৘ใ

    •ForecastGummiModel
    w༧ࠂάϛͷঢ়ଶ
    •ScoreModel
    wݱࡏͷಘ఺
    •PointModel
    wάϛফڈʹΑΔ֫ಘಘ఺
    89
    Domain / Model
    CAFU ʹ͍ͭͯ

    View Slide

  90. 90
    Domain / Model
    CAFU ʹ͍ͭͯ
    w ͪΐͬͱͨ͠஋ͷՃ޻ॲཧͳͲΛߦ͍ͬͯΔ

    ৔߹͸ςετॻ͘
    w جຊతʹ͸ςετॻ͔ͳͯ͘Ϥαι΢

    View Slide

  91. •GummiTranslator
    w4UBHF-FWFM&OUJUZͱ

    Ґஔ͔Β4DPSF.PEFM
    Λੜ੒
    •ScoreEntityTranslator
    w4DPSF.PEFMΛ
    4DPSF&OUJUZʹม׵
    91
    Domain / Translator
    CAFU ʹ͍ͭͯ

    View Slide

  92. 92
    Domain / Translator
    CAFU ʹ͍ͭͯ
    w GummiModelTranslator͸IStageLevelEntityΛ

    .PDLͯ͠Translate()Λςετ
    w ScoreEntityTranslator͸IScoreModelΛ

    .PDLͯ͠Translate()Λςετ

    View Slide

  93. •ScoreRepository
    wείΞΛಡΈॻ͖
    •StageLevelRepository
    wεςʔδͷάϛ৭ߏ੒

    ͳͲͷϚελΛऔಘ
    93
    Domain / Repository
    CAFU ʹ͍ͭͯ

    View Slide

  94. 94
    Domain / Repository
    CAFU ʹ͍ͭͯ
    w ScoreRepository͸IScoreModelͷ.PDLͰςετ
    w StageLevelRepository͸IStageLevelEntity

    Ͱςετ

    View Slide

  95. •ScoreEntity
    wεςʔδ෼ͷείΞ
    •ScoreMapEntity
    wશεςʔδ෼ͷείΞ

    •GummiPointMapEntity
    w࿈࠯ຖͷ֫ಘ఺਺Ϛελ
    •StageLevelEntity
    wεςʔδ೉қ౓ఆٛ
    •StageLevelMapEntity
    wશεςʔδ෼ͷ೉қ౓
    95
    Data / Entity
    CAFU ʹ͍ͭͯ

    View Slide

  96. 96
    Data / Entity
    CAFU ʹ͍ͭͯ
    w .PEFMಉ༷ɺಛघͳϝιουΛੜ΍͍ͯ͠ͳ͍

    ݶΓςετ͸ෆཁ

    View Slide

  97. •ScriptableObjectDataStore
    wγʔϯதͷ೚ҙͷ

    ίϯϙʔωϯτ͔Β

    ࢀর͞ΕΔ
    4DSJQUBCMF0CKFDU͔Β

    &OUJUZΛऔಘ

    •LocalStorageDataStore
    wϩʔΧϧετϨʔδʹ

    +40/ͱ͔Ͱ&OUJUZΛ

    อଘͨ͠ΓಡΜͩΓ
    97
    Data / DataStore
    CAFU ʹ͍ͭͯ

    View Slide

  98. 98
    Data / DataStore
    CAFU ʹ͍ͭͯ
    w ScriptableObjectDataStore͸'JYUVSFγʔϯ

    ͔ΒͷΠϯελϯεऔಘΛςετ
    w LocalStorageDataStore͸೚ҙͷ&OUJUZΛ

    ૬ޓʹಡΈॻ͖ग़དྷΔ͔Λςετ

    View Slide

  99. 99
    σʔλͷྲྀΕ

    View Slide

  100. wϘλϯ͕ΫϦοΫ͞ΕͯԿ͔ॲཧ͢Δ
    100
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  101. wԿΒ͔ͷτϦΨʔͰঢ়ଶ͕มԽ
    101
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  102. wλΠϚʔతͳ࣮૷
    102
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  103. wόφʔը૾Λαʔό͔Βऔಘ
    103
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  104. wόφʔը૾Λ୺຤ʹΩϟογϡ
    104
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  105. wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ
    105
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  106. wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ

    ʢϥΠτ൛ʣ
    106
    σʔλͷྲྀΕ
    CAFU ʹ͍ͭͯ

    View Slide

  107. ·ͱΊ
    107

    View Slide

  108. wૄ݁߹ͳΞϓϦέʔγϣϯΛ

    ߏங͢Δͱςετ͕͠΍͘͢ͳΔ
    w$MFBO"SDIJUFDUVSF͕Φεεϝ
    w$"'6࢖ͬͯΈͯͶʂελʔ΋śūŢŒţ
    108
    ·ͱΊ

    View Slide

  109. 109
    Thank you for your
    attention!!

    View Slide