Slide 1

Slide 1 text

Clean Architecture ͷ େ࿮Λͬ͘͟Γཧղ͢Δ USAMI Kosuke Fenrir Inc.

Slide 2

Slide 2 text

ࣗݾ঺հ • Ӊࠤݟެี (@usamik26) • ϑΣϯϦϧגࣜձࣾ • iOS ΞϓϦ։ൃ : Swift / Xamarin (C#)

Slide 3

Slide 3 text

Clean Architecture • ݩهࣄ : The Clean Architecture | 8th Light • ΞϓϦέʔγϣϯͷઃܭύλʔϯͷͻͱͭ • ϞόΠϧΞϓϦ։ൃք۾Ͱ࠷ۙԿ౓͔࿩͕ڍ͕ͬͨ

Slide 4

Slide 4 text

ݩهࣄ

Slide 5

Slide 5 text

ղઆهࣄ͸͍͔ͭ͋͘Δ͚Ͳɾɾɾ • ݩهࣄ΍ղઆهࣄ͸ɺղઆ͕ࡉ͔͗͢ΔͷͰ͸ͳ͍͔ʁ • ૈཻ͍౓ͷ࿩ͱࡉཻ͔͍౓ͷ࿩͕͍ࠞͬͯ͟ΔͷͰ͸ • ·ͣɺͬ͘͟Γେ͖ͳ࿮૊ΈΛ೺ѲΛͨ͠ํ͕ྑ͍

Slide 6

Slide 6 text

େ͖ͳ࿮૊ΈΛ೺Ѳ͢Δ • ·ͣ͸શମਤΛ΋͏Ұ౓ݟͯΈΔ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ਤΛॻ͖௚ͯ͠ΈΔ • Onion ਤ͸ॳݟͰ͸ϐϯͱ͜ͳ͍ʢݸਓͷײ૝Ͱ͢ʣ • ͋͑ͯੲͳ͕Βͷ Layer ਤͰॻ͖௚ͯ͠ΈΔ

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

MV○ ύλʔϯͱൺ΂ͯΈΔ

Slide 11

Slide 11 text

ൺ΂ͨ݁Ռ • MV○ ύλʔϯͰ͸ Model ૚͸ਂ۷Γ͞Ε͍ͯͳ͔ͬͨ • View ͱ Model ͱͷ෼཭ʹॏ఺͕͋ͬͨ • M ͱ V ͷͭͳ͗ํʹ஫໨͍ͯͨ͠ʢMVC / MVP / MVVMʣ • Model ૚ͷதͰ΋ɺಉ༷ͷ෼཭͕Ͱ͖Δ • ϏδωεϩδοΫͱ DB ͱͷ෼཭

Slide 12

Slide 12 text

ґଘؔ܎Λݟ௚ͯ͠ΈΔ

Slide 13

Slide 13 text

ґଘؔ܎͕ٯస͍ͯ͠Δ • ैདྷͷ Layer ߏ଄Ͱ͸্͔ΒԼ΁ґଘ͍ͯͨ͠ • Clean Architecture ͸֎͔Β಺΁ґଘ͍ͯ͠Δ • Onion ਤ͸͜ΕΛදݱ͍ͯͨ͠

Slide 14

Slide 14 text

ิ଍ : ґଘؔ܎Λٯసͤ͞Δख๏ • Լͷ૚ͷ Interface Λ্ͷ૚͕ఆٛɺґଘੑͷ஫ೖʢDIʣΛ࢖͏ • ͦ΋ͦ΋ґଘؔ܎ͱ͍͏ͷ͸ Interface ʹର͢Δґଘ • ͦͷͨΊɺInterface ͷఆٛΛ୭͕͔࣋ͭͰґଘؔ܎͕มΘΔ

Slide 15

Slide 15 text

ґଘؔ܎ͷมԽʹΑͬͯԿ͕ى͜Δ͔ • Business Rules ૚͕த৺ͱͳΔ • ֎քʢUI ΍ DB ͳͲʣʹࠨӈ͞Εͳ͍ੈք͕Ͱ͖Δ

Slide 16

Slide 16 text

֎քʹӨڹ͞Εͳ͍ੈք • ७ਮͳϞσϦϯάͷੈք • Domain Driven Design ͷύλʔϯ͕༗ӹ • ͞Βʹಥ͖٧ΊΔͱ෭࡞༻ʢSide Effectʣͷͳ͍ੈք΁

Slide 17

Slide 17 text

Clean Architecture ࠾༻࣌ͷཹҙࣄ߲ • Business Rules ૚ʹϩδοΫΛूத͢Δ • Controllers / Presenters / Gateways ͸ബ͘͢Δ • UI / DB / ... ͸ݸʑͷ໾ׂʹಛԽ͢Δ

Slide 18

Slide 18 text

࠾༻ྫ : ΞϨϯδ͋Γ

Slide 19

Slide 19 text

ิ଍ : Controllers / Presenters • Clean Architecture ͷ࿩ͱҰॹʹޠΒΕΔ͜ͱ͕ଟ͍ • ͔͠͠ɺΞʔΩςΫνϟઃܭͷ࿩ͱ͸෼͚ͯཧղͨ͠ํ͕ྑ͍ • ΋ͪΖΜɺ༗ӹͳઃܭύλʔϯͰ͸͋Δ • MVC / MVP / MVVM ͷΑ͏ʹ M ͱ V ΛͲ͏ͭͳ͙͔ͷ࿩

Slide 20

Slide 20 text

͓ΘΓʹ • େ࿮Λ೺Ѳ͢Δखॿ͚ʹͳͬͨͳΒ޾͍Ͱ͢ • ͦͷ͏͑Ͱݩهࣄ΍ղઆهࣄΛಡΈ௚͢ • ͢Δͱɺ৽ͨͳؾ͖͕ͮ͋Δ͔΋