Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tetsuya Mori
PRO
June 06, 2018
Technology
28k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
さては密結合だなオメー Clean Architecture で学ぶ テストフレンドリーな疎結合設計/Loosely Coupled Design Learning with Clean Architecture
2018/06/06 に開催された「Unity テスト完全に理解した」という勉強会での発表資料です。
Tetsuya Mori
PRO
June 06, 2018
More Decks by Tetsuya Mori
See All by Tetsuya Mori
ビルドシステムを C# 大統一したお話
monry
PRO
2
1.6k
C# 大統一理論推進委員会 会員のための Unity Package Manager プロジェクト構成案
monry
PRO
0
1.8k
はじめての C# 大統一理論
monry
PRO
0
870
unity1week でチーム開発を成功させる秘訣
monry
PRO
0
330
Unity で ARゲームを作った話
monry
PRO
1
1.1k
Visual Programming Framework UniFlow のご紹介/Introducing UniFlow
monry
PRO
2
3.2k
UniFlow 完全に理解した / I can develop UniFlow a little.
monry
PRO
0
570
Democratized Unity Package Manager
monry
PRO
1
3.1k
使ってみよう! Unity RemoteSettings/Let's use Unity RemoteSettings
monry
PRO
1
1.3k
Other Decks in Technology
See All in Technology
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
340
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
320
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
140
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
320
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
420
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
730
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
550
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
360
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
FOSS4Gを活用した自治体業務DXの試み
470715
0
140
分析AIエージェントを育てる、動く環境を育てる
codatum
1
460
Featured
See All Featured
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
780
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
The Curse of the Amulet
leimatthew05
3
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
390
Transcript
גࣜձࣾΩοζελʔ CTO ɹ࠸ ͯ͞ີ݁߹ͩͳΦϝʔ Clean Architecture ͰֶͿ ςετϑϨϯυϦʔͳૄ݁߹ઃܭ Unity ςετશʹཧղͨ͠
@ 2018/06/06
2 ͜ΜΜʂ
3 ಥવͰ͕͢ ઃܭਤͷݕূ༻ઃܭਤ ςετɺॻ͍ͯ·͔͢ʁ
4 ࢲɺ࠷ۙ·Ͱ ॻ͍͍ͯ·ͤΜͰͨͬ͠ʂ
rΜΓ͌ઌੜ l͋ͳͨͨͪͷதͰςετΛॻ͍͍ͯΔऀ͕ɺ ·ͣɺࢲʹੴΛ͛ͳ͍͞ɻz 5
6 ͋͋ͬʂੴΛ͛ͳ͍Ͱʂ ϚαΧϦΛ͛ͳ͍Ͱʂʂʢ࣮ʣ
ࣗݾհ 7
wɹ࠸ʢBLBΜΓ͌ઌੜʣ w࡛ۄݝ࢈ wגࣜձࣾΩοζελʔ$50 wࡀϲ݄ͷ່ʹκοίϯ-07& w͓ञͱ߹এͱϓϩάϥϛϯά͕झຯ w5XJUUFS!NPOSZ(JU)VC!NPOSZ 8 Who am I
?
w ࢠͲ͚εϚϗΞϓϦ ։ൃͳͲ w ͋ͨΓ͔Β 6OJUZΨοπϦ w ͬ͜͝ϥϯυ ྦྷܭສ%- w
"QQ4UPSF(PPHMF1MBZ ʹͯࢠͲ͚ΧςΰϦ ϥϯΩϯά501 9 ͓͠͝ͱ
લஔ͖ 10
11 ࠓճ
12 ϓϩδΣΫτͷίʔυΛ ςετ͠қ͘͢Δख๏ʹ ͍͓ͭͯ͠͠·͢ɻ
ΞδΣϯμ 13
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 14 ͓͠ͳ͕͖
15 ຊ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 16 ͓͠ͳ͕͖
Unity ςετʹ͓͚Δ՝ 17
w୯ମςετ6OJU5FTU w݁߹ςετ*OUFHSBUJPO5FTU w૯߹ςετ4ZTUFN5FTU 18 ςετ is Կʁ Unity ςετʹ͓͚Δ՝
wʮ͍ɺγϯϓϧͳΫϥεͳΒ65ॻ͚ΔΜ͢Αʯ wঢ়ଶΛඞཁͱ͢Δςετ͕γϯυΠ w֎෦σʔλʹґଘ͢Δςετɺ 4DSJQUBCMF0CKFDUͷσʔλʹґଘ͢Δςετ͕ γϯυΠ w7JFX .POP#FIBWJPVS ʹґଘ͢Δͱ͔ͳΔͱ ઈత 19
Կނɺॻ(͔|͚)ͳ͍ʁ Unity ςετʹ͓͚Δ՝
wʮ͍ɺ1MBZ.PEFςετ͋ΔΜʯ w͍ͬͯ͟ΈΔͱɺ৭ʑͳ՝͕ ݟ͑ͯ͘Δ 20 Կނɺॻ(͔|͚)ͳ͍ʁ Unity ςετʹ͓͚Δ՝
w͋ΔΫϥεͭҎ্ͷΫϥεͷ ΠϯελϯεΛඞཁͱ͍ͯ͠Δ w߹ʹΑͬͯɺͦΕΒͷ ΠϯελϯεߋʹผͷΫϥεͷ ΠϯελϯεΛඞཁͱ͍ͯ͠Δ ͳΜͯ͜ͱ 21 ՝ʁ Unity ςετʹ͓͚Δ՝
wσʔλͷݩωλʹڌΒͣɺσʔλΛ औಘɾઃఆ͢ΔॲཧΛςετ͍ͨ͠ w<0CTPMFUF>3FTPVSDFT-PBE w6OJUZ8FC3FRVFTU wϩʔΧϧΩϟογϡ wFUD 22 ՝ʁ Unity
ςετʹ͓͚Δ՝
w7JFXͷॲཧ͕λοϓೖྗΛલఏʹͯ͠ ͍Δ wଞͷ(BNF0CKFDU͕ॳظԽ͞Ε͍ͯΔ ίτΛલఏʹ͍ͯ͠Δ w4JOHMFUPOͱ͔ͰલͷγʔϯͰઃఆ͞ ΕͨΛඞཁͱ͢Δ 23 ՝ʁ Unity ςετʹ͓͚Δ՝
24 ͜͏͍͏ঢ়ଶ
25 is
26 ີ݁߹
27 ີ݁߹
28 ີ݁߹
29
w4JOHMFUPO.POP#FIBWJPVSűŒŕŰŖ wTUBUJD͓͡͞Μ w ߦΛ͑Δ6QEBUF 30 ີ݁߹ Unity ςετʹ͓͚Δ՝
wͪΐͬͱؾΛൈ͘ͱ͙͢͜͏ͳΔ w݁߹Λ΄Ͳ͍ͯૄ݁߹ʹ͠Α͏ʂ 31 ີ݁߹ Unity ςετʹ͓͚Δ՝
32 ͦͷลΛ౿·͑ͯ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 33 ͓͠ͳ͕͖
ૄ݁߹ͷجຊతͳߟ͑ํ 34
35
36 Ҏ্ɻ
37 ………ɻ
38 ૄ݁߹ͷͨΊͷ ςΫχοΫΛʢࡶʹʣհ
w4JOHMF3FTQPOTJCJMJUZ1SJODJQMF w0QFODMPTFEQSJODJQMF w-JTLPWTVCTUJUVUJPOQSJODJQMF w*OUFSGBDFTFHSFHBUJPOQSJODJQMF w%FQFOEFODZJOWFSTJPOQSJODJQMF 39 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
w୯Ұͷݪଇ w։์ดͷݪଇ wϦείϑͷஔݪଇ wΠϯλϑΣʔεͷݪଇ wґଘੑٯసͷ๏ଇ 40 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
41
w40-*%ݪଇ͕कΒΕ͍ͯΔίʔυ ͦͷҰͭҰͭʹ͍ͭͯɺؔ৺ͷ͕ ߦΘΕ͍ͯΔͱݴ͑Δ w͢ͳΘͪɺݸʑͷίʔυʹ͓͚Δ ςετରͷؔ৺ࣄ͕গͳ͍ w͢ͳΘͪɺૄ݁߹ͩͱݴ͑Δ 42 SOLID ݪଇ ૄ݁߹ͷجຊతͳߟ͑ํ
wૄ݁߹ͳγεςϜʹର͢Δςετ ͭͷςετίʔυ͕ෛ͏͕ڱ͍ wςετΛ࣮ࢪ͢Δࡍͷ४උॲཧ͕ গͳ͘ͳΔέʔε͕ଟ͍ 43 ૄ݁߹ × ςετ ૄ݁߹ͷجຊతͳߟ͑ํ
wۃͱͯ͠ɺ֤ཁૉʹର͢Δ65͕ ॻ͔Ε͍ͯΕ*5ͦ͜·Ͱ ؤுΒͳͯ͘ࡁΉ 44 ૄ݁߹ × ςετ ૄ݁߹ͷجຊతͳߟ͑ํ
45 ͰʁHow to ૄ݁߹ʁ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 46 ͓͠ͳ͕͖
Clean Architecture ʹ͍ͭͯ 47
48 ͷɺલʹ
w͜͜·Ͱ୯ҰͷΫϥεʹؔ͢Δ ؔ৺ͷʹ͍ͭͯ wҰͭࢹ࠲Λ֦͛ͯϨΠϠʔʹؔ͢Δ ؔ৺ͷʹ͍ͭͯߟ͑Δ 49 ؔ৺ͷ Clean Architecture ʹ͍ͭͯ
wιϑτΣΞΞʔΩςΫνϟ ʹԙ͍ͯɺҰൠʹҎԼͷ Α͏ʹϨΠϠʔΛ͚Δ ʢίτ͕ଟ͍ʣ w1SFTFOUBUJPO ݟͨ w%PNBJO ϩδοΫ
w%BUB σʔλ 50 ؔ৺ͷ for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
w.7$.71ͳͲͷ ΞʔΩςΫνϟʹΑΓ 1SFTFOUBUJPOͱ%PNBJO ͷ͕࣮ݱ͞ΕΔ w֤ΞʔΩςΫνϟͰ ͷ۩ମతͳखஈ ༷ʑ w.71.77.ͩͱ 3YΛ͏ͷ͕Ұൠతʁ 51
ؔ৺ͷ for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
w%PNBJOͱ%BUBͷ ֤छσβΠϯύλʔϯ͕ ୲͏͜ͱ͕ଟ͔ͬͨ wͱ͍͏͔ɺ.7 Ͱ %PNBJOҎ߱ʹ͍ͭͯͷ ΛΞʔΩςΫνϟ ͱͯ͠ෛ͍ͬͯͳ͍ײ͡ 52 ؔ৺ͷ
for ϨΠϠʔ Presentation Domain Data Clean Architecture ʹ͍ͭͯ
wͰɺͦͷลఆٛͨ͠ ΞʔΩςΫνϟ͕ొ͢Δ w)FYBHPOBM"SDIJUFDUVSF w0OJPO"SDIJUFDUVSF w$MFBO"SDIJUFDUVSF 53 ؔ৺ͷ for ϨΠϠʔ Presentation
Domain Data Clean Architecture ʹ͍ͭͯ
54 Α͏͘ຊ
w6ODMF#PC 3PCFSU$.BSUJO ࢯ͕ ݄ʹఏҊ wJ04ͷ7*1&3ͳΜ͔ίϨ͕ݯྲྀ 55 Clean Architecture Clean Architecture
ʹ͍ͭͯ
56 Clean Architecture Clean Architecture ʹ͍ͭͯ
57 ͳΔ΄ͲɺΘ͔ΒΜɻ
58 ࢲͳΓʹղऍͯ͠Έͨ
wϨΠϠʔͷׂΛఆٛ͢Δ wϨΠϠͷΛ໌֬Խ wOBNFTQBDFͳͲͰ ͔Γ͘͢͢Δ 59 Clean Architecture Clean Architecture ʹ͍ͭͯ
wґଘͷϧʔϧΛकΔ wؔ৺ͷ͖Ұํ wݪଇతʹಉϨΠϠʔؒ ґଘͤ͞ͳ͍ wϨΠϠʔΛඈͼӽ͑ͳ͍ 60 Clean Architecture Clean Architecture
ʹ͍ͭͯ
wϨΠϠʔఆٛࣗ༝ wͱ͔ෆఆ wϓϩμΫτຖʹॊೈʹ wΓͳ͖Ό૿͢ 61 Clean Architecture Clean Architecture ʹ͍ͭͯ
wϨΠϠʔؒͷؔ৺Λ w40-*%ݪଇ wJOUFSGBDFΛ༻͍ͯ ۩Ϋϥεͷґଘഉআ w%FQFOEFODZ*OKFDUJPOT 62 Clean Architecture Clean Architecture
ʹ͍ͭͯ
wಉ৺ԁͷਤؔ৺ͷ͖ wଆ֎ଆΛΒͳ͍ w(BUFXBZT%#͕ Ͳ͏ͬͯσʔλΛ ѻ͏͔Βͳ͍ɺͱ͔ wσʔλͷྲྀΕผͷ͓ wӈԼͷਤ͕ιϨ 63 Clean Architecture
Clean Architecture ʹ͍ͭͯ
64 ΜͰ
65 ͜ΕΛ Unity ʢ͔ͬͯ C#ʣ Ͱ࣮ͯ͠Έͨ
w6OJUZςετʹ͓͚Δ՝ wૄ݁߹ͷجຊతͳߟ͑ํ w$MFBO"SDIJUFDUVSFʹ͍ͭͯ w$"'6ʹ͍ͭͯ 66 ͓͠ͳ͕͖
CAFU ʹ͍ͭͯ 67
w$MFBO"SDIJUFDUVSF'PS6OJUZͷུ wʮ͔;ʔʯͱಡΉ wώωϦ͕ͳ͍ͱ͔ݴΘͳ͍ɻ w.*5-JDFOTFͳ044 wIUUQTHJUIVCDPNVNNQSPKFDUTDBGV@DPSF 68 CAFU is Կʁ CAFU
ʹ͍ͭͯ
wجຊతʹJOUFSGBDFͷΈΛఏڙ w6OJUZͱର͢Δ্ͰඞཁʹͳΔ ΫϥεΛఏڙ wΩοζελʔͷΞϓϦ։ൃͰ ઈͬͯΔ 69 CAFU is Կʁ CAFU
ʹ͍ͭͯ
70 ϨΠϠʔఆٛ
71 ϨΠϠʔఆٛ CAFU ʹ͍ͭͯ
72 ґଘؔ CAFU ʹ͍ͭͯ
w.POP#FIBWJPVSͱର͠ ݟͨΛ࢘ΔϨΠϠʔ w1SFTFOUFSͷΈґଘՄ 73 Presentation / View CAFU ʹ͍ͭͯ
w7JFXͱ6TF$BTFΛܨ͙ϨΠϠʔ w6TF$BTFޙड़ wঢ়ଶΛ࣋ͨͳ͍ 74 Presentation / Presenter CAFU ʹ͍ͭͯ
wϏδωεϩδοΫͷ࣮ͦͷͷ wܭࢉॲཧͳͲΛ୲͏ wޙड़ͷ.PEFMͱͯ͠දݱ͞ΕΔ ঢ়ଶΛอ࣋ͨ͠Γ͢Δ 75 Domain / UseCase CAFU ʹ͍ͭͯ
wओʹ7JFXͰͷར༻Λతͱͨ͠ σʔλͷߏ w6OJ3YΛ௨ͯ͡7JFXʹૹΒΕΔ w3YετϦʔϜΛؚΊͨঢ়ଶΛཧ 76 Domain / Model CAFU ʹ͍ͭͯ
wޙड़ͷ&OUJUZͱ.PEFMͱΛ૬ޓม ͢ΔͨΊͷTranslate()ϝιουΛ උ͑Δ w֎෦༷ͷมߋΛ6TF$BTF7JFX ʹͤ͞ͳ͍ͨΊʹఆٛ 77 Domain / Translator CAFU
ʹ͍ͭͯ
w%BUBϨΠϠʔͱର͢ΔͨΊͷ ϨΠϠʔ wσʔλΛಡΈॻ͖͢ΔͨΊͷ ΠϯλϑΣʔεΛ࣋ͭ 78 Domain / Repository CAFU ʹ͍ͭͯ
wσʔλͷߏΛఆٛͨ͠ϨΠϠʔ wσʔλͷ࣮ମ͕ԿͰ͋Εɺ ߏදݱͱͯ͠ҰͭͷΫϥεͰද͢ w4DSJQUBCMF0CKFDU͕ϝϯυΠʜɻ 79 Data / Entity CAFU ʹ͍ͭͯ
wσʔλͷऔΓѻ͍Λ࣮ͨ͠ϨΠϠʔ w4DSJQUBCMF0CKFDUͱ͔ɺ 8FC"1*ܦ༝ͷ+40/ͱ͔ɺ 42-JUFܦ༝ͷσʔλͱ͔ɺFUD 80 Data / DataStore CAFU ʹ͍ͭͯ
wFOVNͱ͔DPOTUతͳΛཧ͢Δ ͨΊͷ"QQMJDBUJPOϨΠϠʔ w%*༻ͷ'BDUPSZΫϥεͱ͔Λ ֨ೲ͢Δ6UJMJUZϨΠϠʔ 81 ͦͷଞ CAFU ʹ͍ͭͯ
wམͪϞϊήʔϜΛྫʹղઆ wʙ৭ͷάϛ͕ ݸηοτͰམԼ wͭἧ͏ͱফ͑Δ wළͷ࠷্ஈ·Ͱୡͨ͠Β ήʔϜΦʔόʔ wͦͷ࣌ͷείΞΛه 82 ྫ͑ CAFU
ʹ͍ͭͯ
• Controller w γʔϯ੍ޚ w 1SFTFOUFSॳظԽ • Gummi w ߱ͬͯ͘Δάϛ
•Floor wϘτϧͷচ •Ceil wϘτϧͷఱҪ •Wall wϘτϧͷน 83 Presentation / View CAFU ʹ͍ͭͯ
w Gummiʹ.PDLΠϕϯτ͕ඈΜͰ͖ͨΒ .PDL1SFTFOUFSͷϝιου͕ݺΕΔ͔ʁςετ w .PDL1SFTFOUFSͷ3YετϦʔϜʹ ͕ྲྀΕ͖ͯͨΒWall͕ΤϑΣΫτΛ *OTUBOUJBUF͢Δ͔ʁςετ 84 Presentation /
View CAFU ʹ͍ͭͯ
•StagePresenter wγʔϯैଐ1SFTFOUFS 85 Presentation / Presenter CAFU ʹ͍ͭͯ
86 Presentation / Presenter CAFU ʹ͍ͭͯ w StagePresenterͷ֤ϝιουΛςετ w 6TF$BTFͷΠϯελϯεશͯ.PDL
w 1SFTFOUFSϨΠϠʔςετॻ͘ՁΊ
•GummiStateUseCase wεςʔδதͷάϛͷঢ়ଶ Λཧɾܭࢉ wάϛணˠ࠶ܭࢉͱ͔ wͪ͗Εఆͱ͔ •ScoreUseCase wಘΛཧɾܭࢉ •StageUseCase wεςʔδͷߏΛཧ wԿ৭ͷάϛΛग़͢ʁ
wམԼεϐʔυʁ 87 Domain / UseCase CAFU ʹ͍ͭͯ
88 Domain / UseCase CAFU ʹ͍ͭͯ w ֤6TF$BTFͷQVCMJDϝιουΛςετ w ೖྗग़ྗ1SJNJUJWFͳJOUFSGBDFΛ
௨ͯ͡ߦΘΕΔϋζ w ScoreUseCaseͷ&OUJUZ.PEFM.PDL͢Δ
•GummiModel wάϛҰͭΛදݱ w৭ͱ͔4UBUFͱ͔ •GummiMapModel wεςʔδͷશάϛใ •ForecastGummiModel w༧ࠂάϛͷঢ়ଶ •ScoreModel wݱࡏͷಘ •PointModel
wάϛফڈʹΑΔ֫ಘಘ 89 Domain / Model CAFU ʹ͍ͭͯ
90 Domain / Model CAFU ʹ͍ͭͯ w ͪΐͬͱͨ͠ͷՃॲཧͳͲΛߦ͍ͬͯΔ ߹ςετॻ͘ w
جຊతʹςετॻ͔ͳͯ͘Ϥαι
•GummiTranslator w4UBHF-FWFM&OUJUZͱ Ґஔ͔Β4DPSF.PEFM Λੜ •ScoreEntityTranslator w4DPSF.PEFMΛ 4DPSF&OUJUZʹม 91 Domain /
Translator CAFU ʹ͍ͭͯ
92 Domain / Translator CAFU ʹ͍ͭͯ w GummiModelTranslatorIStageLevelEntityΛ .PDLͯ͠Translate()Λςετ w
ScoreEntityTranslatorIScoreModelΛ .PDLͯ͠Translate()Λςετ
•ScoreRepository wείΞΛಡΈॻ͖ •StageLevelRepository wεςʔδͷάϛ৭ߏ ͳͲͷϚελΛऔಘ 93 Domain / Repository CAFU
ʹ͍ͭͯ
94 Domain / Repository CAFU ʹ͍ͭͯ w ScoreRepositoryIScoreModelͷ.PDLͰςετ w StageLevelRepositoryIStageLevelEntity
Ͱςετ
•ScoreEntity wεςʔδͷείΞ •ScoreMapEntity wશεςʔδͷείΞ •GummiPointMapEntity w࿈ຖͷ֫ಘϚελ •StageLevelEntity wεςʔδқఆٛ •StageLevelMapEntity wશεςʔδͷқ
95 Data / Entity CAFU ʹ͍ͭͯ
96 Data / Entity CAFU ʹ͍ͭͯ w .PEFMಉ༷ɺಛघͳϝιουΛੜ͍ͯ͠ͳ͍ ݶΓςετෆཁ
•ScriptableObjectDataStore wγʔϯதͷҙͷ ίϯϙʔωϯτ͔Β ࢀর͞ΕΔ 4DSJQUBCMF0CKFDU͔Β &OUJUZΛऔಘ •LocalStorageDataStore wϩʔΧϧετϨʔδʹ +40/ͱ͔Ͱ&OUJUZΛ อଘͨ͠ΓಡΜͩΓ
97 Data / DataStore CAFU ʹ͍ͭͯ
98 Data / DataStore CAFU ʹ͍ͭͯ w ScriptableObjectDataStore'JYUVSFγʔϯ ͔ΒͷΠϯελϯεऔಘΛςετ w
LocalStorageDataStoreҙͷ&OUJUZΛ ૬ޓʹಡΈॻ͖ग़དྷΔ͔Λςετ
99 σʔλͷྲྀΕ
wϘλϯ͕ΫϦοΫ͞ΕͯԿ͔ॲཧ͢Δ 100 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wԿΒ͔ͷτϦΨʔͰঢ়ଶ͕มԽ 101 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wλΠϚʔతͳ࣮ 102 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wόφʔը૾Λαʔό͔Βऔಘ 103 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wόφʔը૾ΛʹΩϟογϡ 104 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ 105 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
wϚελσʔλΛ4DSJQUBCMF0CKFDU͔Βऔಘ ʢϥΠτ൛ʣ 106 σʔλͷྲྀΕ CAFU ʹ͍ͭͯ
·ͱΊ 107
wૄ݁߹ͳΞϓϦέʔγϣϯΛ ߏங͢Δͱςετ͕͘͢͠ͳΔ w$MFBO"SDIJUFDUVSF͕Φεεϝ w$"'6ͬͯΈͯͶʂελʔśūŢŒţ 108 ·ͱΊ
109 Thank you for your attention!!