Станислав Цыганов "soa в ios разработке"

115
SOA SOA или Что нам стоит дом построить? Цыганов Станислав @DevAlloy

Upload: mobicode

Post on 22-Jan-2017

104 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Станислав Цыганов "SOA в iOS разработке"

SOA

SOA или Что нам стоит дом

построить?

Цыганов Станислав@DevAlloy

Page 2: Станислав Цыганов "SOA в iOS разработке"

2

Rambler Digital Solutions

Page 4: Станислав Цыганов "SOA в iOS разработке"

4

Архитектура

Page 5: Станислав Цыганов "SOA в iOS разработке"

4

Архитектура

• VIPER

Page 6: Станислав Цыганов "SOA в iOS разработке"

4

Архитектура

• VIPER

• SOA

Page 7: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

Page 8: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

• Что такое SOA?

Page 9: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

• Что такое SOA?

• Роль сервисного слоя

Page 10: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

• Что такое SOA?

• Роль сервисного слоя

• Пример SOA для простого приложения

Page 11: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

• Что такое SOA?

• Роль сервисного слоя

• Пример SOA для простого приложения

• Сложности

Page 12: Станислав Цыганов "SOA в iOS разработке"

5

Про что поговорим

• Что такое SOA?

• Роль сервисного слоя

• Пример SOA для простого приложения

• Сложности

• Преимущества SOA

Page 13: Станислав Цыганов "SOA в iOS разработке"

0. Предисловие

Page 14: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Page 15: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Page 16: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Page 17: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Interface

Page 18: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Interface

Page 19: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Interface

Page 20: Станислав Цыганов "SOA в iOS разработке"

7

Слоистая архитектура

Interface

Page 21: Станислав Цыганов "SOA в iOS разработке"

8

Service Oriented Architecture

Page 22: Станислав Цыганов "SOA в iOS разработке"

8

Presentation

Service Oriented Architecture

Page 23: Станислав Цыганов "SOA в iOS разработке"

8

Presentation

Service

Service Oriented Architecture

Page 24: Станислав Цыганов "SOA в iOS разработке"

8

Presentation

Service

Core

Service Oriented Architecture

Page 25: Станислав Цыганов "SOA в iOS разработке"

1. Эволюция

Page 26: Станислав Цыганов "SOA в iOS разработке"

10

Page 27: Станислав Цыганов "SOA в iOS разработке"

10

VC

Page 28: Станислав Цыганов "SOA в iOS разработке"

10

VC

Page 29: Станислав Цыганов "SOA в iOS разработке"

10

VC

Page 30: Станислав Цыганов "SOA в iOS разработке"

10

VCDataSource

Page 31: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

DataSource

Page 32: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

DataSource

Page 33: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

Storage

DataSource

Page 34: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

Storage

DataSource

...

Page 35: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

Storage

DataSource

...

Page 36: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

Storage

DataSource

...

Page 37: Станислав Цыганов "SOA в iOS разработке"

10

VC NetworkClient

Mapper

Storage

DataSource

...

VC

Page 38: Станислав Цыганов "SOA в iOS разработке"

11

Page 39: Станислав Цыганов "SOA в iOS разработке"

11

Любую проблему можно решить путём введениядополнительного уровня абстракции

Page 40: Станислав Цыганов "SOA в iOS разработке"

11

Любую проблему можно решить путём введениядополнительного уровня абстракции

кроме проблемы слишком большого количества уровнейабстракции

,

Page 41: Станислав Цыганов "SOA в iOS разработке"

11

–Johnny Appleseed

Любую проблему можно решить путём введениядополнительного уровня абстракции

кроме проблемы слишком большого количества уровнейабстракции

,

Page 42: Станислав Цыганов "SOA в iOS разработке"

12

Page 43: Станислав Цыганов "SOA в iOS разработке"

12

VC

Page 44: Станислав Цыганов "SOA в iOS разработке"

12

VC

Page 45: Станислав Цыганов "SOA в iOS разработке"

12

VC VC

Page 46: Станислав Цыганов "SOA в iOS разработке"

12

VC VC

Page 47: Станислав Цыганов "SOA в iOS разработке"

12

VC VC

Page 48: Станислав Цыганов "SOA в iOS разработке"

2. Сервис

Page 49: Станислав Цыганов "SOA в iOS разработке"

14

Сервис

Page 50: Станислав Цыганов "SOA в iOS разработке"

14

Сервис• Единственная ответственность

Page 51: Станислав Цыганов "SOA в iOS разработке"

14

Сервис• Единственная ответственность

• Абстрагируется от UI

Page 52: Станислав Цыганов "SOA в iOS разработке"

14

Сервис• Единственная ответственность

• Абстрагируется от UI

• Реализация скрыта протоколом

Page 53: Станислав Цыганов "SOA в iOS разработке"

14

Сервис• Единственная ответственность

• Абстрагируется от UI

• Реализация скрыта протоколом

• Нет зависимости сервисов от сервисов

Page 54: Станислав Цыганов "SOA в iOS разработке"

14

Сервис• Единственная ответственность

• Абстрагируется от UI

• Реализация скрыта протоколом

• Нет зависимости сервисов от сервисов

• Отсутствие состояния

Page 55: Станислав Цыганов "SOA в iOS разработке"

15

Page 56: Станислав Цыганов "SOA в iOS разработке"

15

Page 57: Станислав Цыганов "SOA в iOS разработке"

15

Page 58: Станислав Цыганов "SOA в iOS разработке"

15

Page 59: Станислав Цыганов "SOA в iOS разработке"

15

Page 60: Станислав Цыганов "SOA в iOS разработке"

15

Page 61: Станислав Цыганов "SOA в iOS разработке"

15

Page 62: Станислав Цыганов "SOA в iOS разработке"

15

VC

Page 63: Станислав Цыганов "SOA в iOS разработке"

15

VC

Page 64: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 65: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 66: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 67: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 68: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 69: Станислав Цыганов "SOA в iOS разработке"

16

VC

Page 70: Станислав Цыганов "SOA в iOS разработке"

17

Page 71: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

Page 72: Станислав Цыганов "SOA в iOS разработке"

17

VC

• Протокол сервиса

• VC

Page 73: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

• VC

Page 74: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

• VC

• Сервис

Page 75: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

• VC

• Сервис

Page 76: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

• VC

• Сервис

Page 77: Станислав Цыганов "SOA в iOS разработке"

17

• Протокол сервиса

• VC

• Сервис

VC

Page 78: Станислав Цыганов "SOA в iOS разработке"

3. Часть со звездочкой

Page 79: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 80: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 81: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 82: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 83: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 84: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 85: Станислав Цыганов "SOA в iOS разработке"

19

DI

Page 86: Станислав Цыганов "SOA в iOS разработке"

20

Фабрики

Page 87: Станислав Цыганов "SOA в iOS разработке"

20

ФабрикиModuleAssembly ModuleAssembly ModuleAssembly

Page 88: Станислав Цыганов "SOA в iOS разработке"

20

ФабрикиModuleAssembly

ServiceAssembly ExtensionServiceAssembly

ModuleAssembly ModuleAssembly

Page 89: Станислав Цыганов "SOA в iOS разработке"

20

ФабрикиModuleAssembly

ServiceAssembly

CoreComponentsAssembly UtilitiesAssembly

ExtensionServiceAssembly

ModuleAssembly ModuleAssembly

Page 90: Станислав Цыганов "SOA в iOS разработке"

20

ФабрикиModuleAssembly

ServiceAssembly

CoreComponentsAssembly UtilitiesAssembly

ExtensionServiceAssembly

ModuleAssembly ModuleAssembly

Page 91: Станислав Цыганов "SOA в iOS разработке"

21

Page 92: Станислав Цыганов "SOA в iOS разработке"

21

VC

Page 93: Станислав Цыганов "SOA в iOS разработке"

21

VC

AuthService ArticleService

Page 94: Станислав Цыганов "SOA в iOS разработке"

21

VC

AuthService ArticleService

Page 95: Станислав Цыганов "SOA в iOS разработке"

21

VC

AuthService ArticleService

?

Page 96: Станислав Цыганов "SOA в iOS разработке"

22

Page 97: Станислав Цыганов "SOA в iOS разработке"

22

Facade

Page 98: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

Page 99: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

Page 100: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

• Без состояния

Page 101: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

• Без состояния

Interactor

Page 102: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

• Без состояния

• Решает задачи модуля

Interactor

Page 103: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

• Без состояния

• Решает задачи модуля

• Держит сервисы или фасады

Interactor

Page 104: Станислав Цыганов "SOA в iOS разработке"

22

Facade

• Решает задачи уровня приложения

• Держит сервисы

• Без состояния

• Решает задачи модуля

• Держит сервисы или фасады

• Может держать состояние

Interactor

Page 105: Станислав Цыганов "SOA в iOS разработке"

4. Итоги

Page 106: Станислав Цыганов "SOA в iOS разработке"

24

Преимущества

Page 107: Станислав Цыганов "SOA в iOS разработке"

24

Преимущества

• Строгая архитектура

Page 108: Станислав Цыганов "SOA в iOS разработке"

24

Преимущества

• Строгая архитектура

• MVC, MVVM, MVP, VIPER

Page 109: Станислав Цыганов "SOA в iOS разработке"

24

Преимущества

• Строгая архитектура

• MVC, MVVM, MVP, VIPER

• Повторное использование

Page 110: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

Page 111: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

• SOA как архитектура

Page 112: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

• SOA как архитектура

• Эволюция приложения

Page 113: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

• SOA как архитектура

• Эволюция приложения

• Что такое сервис?

Page 114: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

• SOA как архитектура

• Эволюция приложения

• Что такое сервис?

• Сложные случаи

Page 115: Станислав Цыганов "SOA в iOS разработке"

25

Подведем итоги

• SOA как архитектура

• Эволюция приложения

• Что такое сервис?

• Сложные случаиЦыганов Станислав

@DevAlloy