architectural superpowers

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

Upload: jorge-ortiz

Post on 15-Apr-2017

138 views

Category:

Software


0 download

TRANSCRIPT

#ArchSuperSwift

Architectural Superpowers

Jorge D. Ortiz-Fuentes @jdortiz

#ArchSuperSwift

A Canonical Examples Production

#ArchSuperSwift

Agenda

#ArchSuperSwift

Agenda

Superpowers

#ArchSuperSwift

Agenda

Superpowers

Scenarios

#ArchSuperSwift

Agenda

Superpowers

Scenarios

Recap

Superpowers

#ArchSuperSwift

Architecture for YouLess repetition

More reusability

Easier maintenance

Less dependent

More testable

Faster to change

#ArchSuperSwift

Architecture for YouLess repetition

More reusability

Easier maintenance

Less dependent

More testable

Faster to change

=

Pride

Super Reusability

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Data Source

Data Source

Data Source

Single Responsibility Principle

ViewControllerPresenter

View ModelModel

Presentation logic

Business Logic

Data Source

Data Source

Data Source

Super Independence

Dependency Inversion Principle

High Level Low Level

Dependency Inversion Principle

High Level

Dependency Inversion Principle

High Level Abstraction

Dependency Inversion Principle

High Level Abstraction

Dependency Inversion Principle

High Level Abstraction

Low Level

Super Testability

#ArchSuperSwift

Testability

Make dependencies explicit

Make dependency injection easier

Benefit from other principles

Scenarios

1

Reuse Logic

2

Replace Backend

3

Test

Takeaways

#ArchSuperSwift

Recap

Architecture has real, practical benefits

Learn the principles

Learn about design patterns

Apply them gradually

Get your superpowers

too!

Thank You!

@jdortiz #ArchSuperSwift