Top Banner
#ArchSuperSwift Architectural Superpowers Jorge D. Ortiz-Fuentes @jdortiz
40

Architectural superpowers

Apr 15, 2017

Download

Software

Jorge Ortiz
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architectural superpowers

#ArchSuperSwift

Architectural Superpowers

Jorge D. Ortiz-Fuentes @jdortiz

Page 2: Architectural superpowers

#ArchSuperSwift

A Canonical Examples Production

Page 3: Architectural superpowers

#ArchSuperSwift

Agenda

Page 4: Architectural superpowers

#ArchSuperSwift

Agenda

Superpowers

Page 5: Architectural superpowers

#ArchSuperSwift

Agenda

Superpowers

Scenarios

Page 6: Architectural superpowers

#ArchSuperSwift

Agenda

Superpowers

Scenarios

Recap

Page 7: Architectural superpowers

Superpowers

Page 8: Architectural superpowers

#ArchSuperSwift

Architecture for YouLess repetition

More reusability

Easier maintenance

Less dependent

More testable

Faster to change

Page 9: Architectural superpowers

#ArchSuperSwift

Architecture for YouLess repetition

More reusability

Easier maintenance

Less dependent

More testable

Faster to change

=

Page 10: Architectural superpowers
Page 11: Architectural superpowers

Pride

Page 12: Architectural superpowers

Super Reusability

Page 13: Architectural superpowers

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Page 14: Architectural superpowers

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Page 15: Architectural superpowers

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Data Source

Data Source

Data Source

Page 16: Architectural superpowers

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Business Logic

Data Source

Data Source

Data Source

Page 17: Architectural superpowers

Super Independence

Page 18: Architectural superpowers

Dependency Inversion Principle

High Level Low Level

Page 19: Architectural superpowers

Dependency Inversion Principle

High Level

Page 20: Architectural superpowers

Dependency Inversion Principle

High Level Abstraction

Page 21: Architectural superpowers

Dependency Inversion Principle

High Level Abstraction

Page 22: Architectural superpowers

Dependency Inversion Principle

High Level Abstraction

Low Level

Page 23: Architectural superpowers

Super Testability

Page 24: Architectural superpowers

#ArchSuperSwift

Testability

Make dependencies explicit

Make dependency injection easier

Benefit from other principles

Page 25: Architectural superpowers

Scenarios

Page 26: Architectural superpowers
Page 27: Architectural superpowers

1

Page 28: Architectural superpowers

Reuse Logic

Page 29: Architectural superpowers
Page 30: Architectural superpowers

2

Page 31: Architectural superpowers

Replace Backend

Page 32: Architectural superpowers
Page 33: Architectural superpowers

3

Page 34: Architectural superpowers

Test

Page 35: Architectural superpowers

Takeaways

Page 36: Architectural superpowers

#ArchSuperSwift

Recap

Architecture has real, practical benefits

Learn the principles

Learn about design patterns

Apply them gradually

Page 37: Architectural superpowers

Get your superpowers

too!

Page 38: Architectural superpowers
Page 39: Architectural superpowers

Thank You!

Page 40: Architectural superpowers

@jdortiz #ArchSuperSwift