Download - Станислав Цыганов "SOA в iOS разработке"
SOA
SOA или Что нам стоит дом
построить?
Цыганов Станислав@DevAlloy
2
Rambler Digital Solutions
4
Архитектура
4
Архитектура
• VIPER
4
Архитектура
• VIPER
• SOA
5
Про что поговорим
5
Про что поговорим
• Что такое SOA?
5
Про что поговорим
• Что такое SOA?
• Роль сервисного слоя
5
Про что поговорим
• Что такое SOA?
• Роль сервисного слоя
• Пример SOA для простого приложения
5
Про что поговорим
• Что такое SOA?
• Роль сервисного слоя
• Пример SOA для простого приложения
• Сложности
5
Про что поговорим
• Что такое SOA?
• Роль сервисного слоя
• Пример SOA для простого приложения
• Сложности
• Преимущества SOA
0. Предисловие
7
Слоистая архитектура
7
Слоистая архитектура
7
Слоистая архитектура
7
Слоистая архитектура
Interface
7
Слоистая архитектура
Interface
7
Слоистая архитектура
Interface
7
Слоистая архитектура
Interface
8
Service Oriented Architecture
8
Presentation
Service Oriented Architecture
8
Presentation
Service
Service Oriented Architecture
8
Presentation
Service
Core
Service Oriented Architecture
1. Эволюция
10
10
VC
10
VC
10
VC
10
VCDataSource
10
VC NetworkClient
DataSource
10
VC NetworkClient
Mapper
DataSource
10
VC NetworkClient
Mapper
Storage
DataSource
10
VC NetworkClient
Mapper
Storage
DataSource
...
10
VC NetworkClient
Mapper
Storage
DataSource
...
10
VC NetworkClient
Mapper
Storage
DataSource
...
10
VC NetworkClient
Mapper
Storage
DataSource
...
VC
11
11
Любую проблему можно решить путём введениядополнительного уровня абстракции
11
Любую проблему можно решить путём введениядополнительного уровня абстракции
кроме проблемы слишком большого количества уровнейабстракции
,
11
–Johnny Appleseed
Любую проблему можно решить путём введениядополнительного уровня абстракции
кроме проблемы слишком большого количества уровнейабстракции
,
12
12
VC
12
VC
12
VC VC
12
VC VC
12
VC VC
2. Сервис
14
Сервис
14
Сервис• Единственная ответственность
14
Сервис• Единственная ответственность
• Абстрагируется от UI
14
Сервис• Единственная ответственность
• Абстрагируется от UI
• Реализация скрыта протоколом
14
Сервис• Единственная ответственность
• Абстрагируется от UI
• Реализация скрыта протоколом
• Нет зависимости сервисов от сервисов
14
Сервис• Единственная ответственность
• Абстрагируется от UI
• Реализация скрыта протоколом
• Нет зависимости сервисов от сервисов
• Отсутствие состояния
15
15
15
15
15
15
15
15
VC
15
VC
16
VC
16
VC
16
VC
16
VC
16
VC
16
VC
17
17
• Протокол сервиса
17
VC
• Протокол сервиса
• VC
17
• Протокол сервиса
• VC
17
• Протокол сервиса
• VC
• Сервис
17
• Протокол сервиса
• VC
• Сервис
17
• Протокол сервиса
• VC
• Сервис
17
• Протокол сервиса
• VC
• Сервис
VC
3. Часть со звездочкой
19
DI
19
DI
19
DI
19
DI
19
DI
19
DI
19
DI
20
Фабрики
20
ФабрикиModuleAssembly ModuleAssembly ModuleAssembly
20
ФабрикиModuleAssembly
ServiceAssembly ExtensionServiceAssembly
ModuleAssembly ModuleAssembly
20
ФабрикиModuleAssembly
ServiceAssembly
CoreComponentsAssembly UtilitiesAssembly
ExtensionServiceAssembly
ModuleAssembly ModuleAssembly
20
ФабрикиModuleAssembly
ServiceAssembly
CoreComponentsAssembly UtilitiesAssembly
ExtensionServiceAssembly
ModuleAssembly ModuleAssembly
21
21
VC
21
VC
AuthService ArticleService
21
VC
AuthService ArticleService
21
VC
AuthService ArticleService
?
22
22
Facade
22
Facade
• Решает задачи уровня приложения
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
• Без состояния
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
• Без состояния
Interactor
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
• Без состояния
• Решает задачи модуля
Interactor
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
• Без состояния
• Решает задачи модуля
• Держит сервисы или фасады
Interactor
22
Facade
• Решает задачи уровня приложения
• Держит сервисы
• Без состояния
• Решает задачи модуля
• Держит сервисы или фасады
• Может держать состояние
Interactor
4. Итоги
24
Преимущества
24
Преимущества
• Строгая архитектура
24
Преимущества
• Строгая архитектура
• MVC, MVVM, MVP, VIPER
24
Преимущества
• Строгая архитектура
• MVC, MVVM, MVP, VIPER
• Повторное использование
25
Подведем итоги
25
Подведем итоги
• SOA как архитектура
25
Подведем итоги
• SOA как архитектура
• Эволюция приложения
25
Подведем итоги
• SOA как архитектура
• Эволюция приложения
• Что такое сервис?
25
Подведем итоги
• SOA как архитектура
• Эволюция приложения
• Что такое сервис?
• Сложные случаи
25
Подведем итоги
• SOA как архитектура
• Эволюция приложения
• Что такое сервис?
• Сложные случаиЦыганов Станислав
@DevAlloy