Разделы презентаций


Как Xamarin привел нас к Clean Architecture

Содержание

Как Xamarin привёл нас к Clean Architecture

Слайды и текст этой презентации

Слайд 1


Слайд 2Как Xamarin привёл нас к Clean Architecture

Как Xamarin привёл нас к Clean Architecture

Слайд 3О чём пойдёт речь
История развития архитектуры мобильного приложения и:
Xamarin
MVVM
Clean Architecture




О чём пойдёт речьИстория развития архитектуры мобильного приложения и:XamarinMVVMClean Architecture

Слайд 4Привет
Владимир Абакумов
Team Lead
Отдел мобильных решений

Мобилки для DIRECTUM and DirectumRX

ПриветВладимир АбакумовTeam LeadОтдел мобильных решенийМобилки для DIRECTUM and DirectumRX

Слайд 5DIRECTUM Solo

DIRECTUM Solo

Слайд 6DIRECTUM Solo
Просмотр задач и других рабочих элементов





DIRECTUM SoloПросмотр задач и других рабочих элементов

Слайд 7DIRECTUM Solo
Просмотр задач и других рабочих элементов

Созданий задач и поручений





DIRECTUM SoloПросмотр задач и других рабочих элементовСозданий задач и поручений

Слайд 8DIRECTUM Solo
Просмотр задач и других рабочих элементов

Созданий задач и поручений

Работа

с документами: просмотр, подписание и поиск




DIRECTUM SoloПросмотр задач и других рабочих элементовСозданий задач и порученийРабота с документами: просмотр, подписание и поиск

Слайд 9DIRECTUM Solo
Просмотр задач и других рабочих элементов

Созданий задач и поручений

Работа

с документами: просмотр, подписание и поиск





DIRECTUM SoloПросмотр задач и других рабочих элементовСозданий задач и порученийРабота с документами: просмотр, подписание и поиск

Слайд 10DIRECTUM Solo
Просмотр задач и других рабочих элементов

Созданий задач и поручений

Работа

с документами: просмотр, подписание и поиск





DIRECTUM SoloПросмотр задач и других рабочих элементовСозданий задач и порученийРабота с документами: просмотр, подписание и поиск…

Слайд 112. Xamarin and MVC

2. Xamarin and MVC

Слайд 122. DIRECTUM Solo: Xamarin

2. DIRECTUM Solo: Xamarin

Слайд 132. DIRECTUM Solo: Xamarin

2. DIRECTUM Solo: Xamarin

Слайд 142. DIRECTUM Solo
Shared code:
Network
Database
Workflow

HTTP, SQLite
Workflow

2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowHTTP, SQLiteWorkflow

Слайд 152. DIRECTUM Solo
Shared code:
Network
Database
Workflow

Solo for iOS and Android


HTTP, SQLite
Workflow
UIVIewController
Activity, Fragment

2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowSolo for iOS and AndroidHTTP, SQLiteWorkflowUIVIewControllerActivity, Fragment

Слайд 162. DIRECTUM Solo
Shared code:
Network;
Database;
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity

HTTP, SQLite
Workflow
UIVIewController
Activity, Fragment

2. DIRECTUM SoloShared code:Network;Database;WorkflowSolo for iOS and AndroidMVC: UIViewController or ActivityHTTP, SQLiteWorkflowUIVIewControllerActivity, Fragment

Слайд 172. DIRECTUM Solo
Shared code:
Network
Database
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity

HTTP, SQLite
Workflow
UIVIewController
Activity, Fragment

2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowSolo for iOS and AndroidMVC: UIViewController or ActivityHTTP, SQLiteWorkflowUIVIewControllerActivity, Fragment

Слайд 182. DIRECTUM Solo
Shared code:
Network;
Database;
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity

HTTP, SQLite
Workflow
UIVIewController
Activity, Fragment

2. DIRECTUM SoloShared code:Network;Database;WorkflowSolo for iOS and AndroidMVC: UIViewController or ActivityHTTP, SQLiteWorkflowUIVIewControllerActivity, Fragment

Слайд 192. DIRECTUM Solo
Shared code:
Network
Database
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity

Общего кода < 30%

Дублирование кода, отличающееся поведение

HTTP, SQLite
Workflow
UIVIewController
Activity, Fragment

2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowSolo for iOS and AndroidMVC: UIViewController or ActivityОбщего кода < 30%Дублирование кода, отличающееся поведениеHTTP,

Слайд 202. DIRECTUM Solo
Shared code:
Network
Database
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity (massive viewControllers)

Общего кода < 30%

Дублирование кода, отличающееся поведение
HTTP, SQLite
Workflow
UIVIewController
Activity,

Fragment
2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowSolo for iOS and AndroidMVC: UIViewController or Activity (massive viewControllers)Общего кода < 30%Дублирование кода,

Слайд 212. DIRECTUM Solo
Shared code:
Network
Database
Workflow

Solo for iOS and Android

MVC: UIViewController or

Activity (massive viewControllers)

Общего кода < 30%

Дублирование кода, отличающееся поведение
HTTP, SQLite
Workflow
UIVIewController
Activity,

Fragment
2. DIRECTUM SoloShared code:NetworkDatabaseWorkflowSolo for iOS and AndroidMVC: UIViewController or Activity (massive viewControllers)Общего кода < 30%Дублирование кода,

Слайд 223 MVVM: model-view-view model

3 MVVM:  model-view-view model

Слайд 243 MVVM
Humble Object
Low Coupling
Dependency Inversion
Тестируемость
Одинаковое поведение



View.iOS
View.Android
View model
Service interactors
Database
Workflow
IPlatformService
PlatformService.A
PlatformService.iOS

3 MVVMHumble ObjectLow CouplingDependency InversionТестируемостьОдинаковое поведениеView.iOSView.AndroidView modelService interactorsDatabaseWorkflowIPlatformServicePlatformService.APlatformService.iOS

Слайд 253 MVVM
Humble object
Low Coupling
Dependency inversion
Liskov substitution
Testable classes
Behavior unification



View.iOS
View.Android
View model
Service

interactors
Database
Use case services
Workflow
IPlatformService
PlatformService.AX
PlatformService.iOS

3 MVVMHumble objectLow CouplingDependency inversionLiskov substitution Testable classesBehavior unificationView.iOSView.AndroidView modelService interactorsDatabaseUse case servicesWorkflowIPlatformServicePlatformService.AXPlatformService.iOS

Слайд 263 MVVM
Humble Object
Low Coupling
Dependency Inversion
Тестируемость
Одинаковое поведение



View.iOS
View.Android
View model
Service interactors
Database
Workflow
IPlatformService
PlatformService.A
PlatformService.iOS

3 MVVMHumble ObjectLow CouplingDependency InversionТестируемостьОдинаковое поведениеView.iOSView.AndroidView modelService interactorsDatabaseWorkflowIPlatformServicePlatformService.APlatformService.iOS

Слайд 273 MVVM
Humble Object
Low Coupling
Dependency Inversion
Тестируемость
Одинаковое поведение



View.iOS
View.Android
View model
Service interactors
Database
Workflow
IPlatformService
PlatformService.A
PlatformService.iOS
Модель представления

Отображение списка

реквизитов;
Запроса на сервер;
Запрос в БД;
Агрегирование результатов;
Отображение результатов.
Single Responsibility Principle нарушается

3 MVVMHumble ObjectLow CouplingDependency InversionТестируемостьОдинаковое поведениеView.iOSView.AndroidView modelService interactorsDatabaseWorkflowIPlatformServicePlatformService.APlatformService.iOSМодель представленияОтображение списка реквизитов;Запроса на сервер;Запрос в БД;Агрегирование результатов;Отображение результатов.Single

Слайд 283 Для чего нужны принципы
«Все счастливые семьи похожи друг на

друга, каждая несчастливая семья несчастлива по-своему»

Л. Н. Толстой

3 Для чего нужны принципы«Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему»Л. Н.

Слайд 293 Для чего нужны принципы
«Все счастливые семьи похожи друг на

друга, каждая несчастливая семья несчастлива по-своему»

Л. Н. Толстой
Принцип Анны Карениной:
Здоровье

человека: температура и артериальное давление;
Архитектура ПО: следование SOLID и другим принципам чистого кода, качественной архитектуры.

3 Для чего нужны принципы«Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему»Л. Н.

Слайд 304 Clean Architecture

4 Clean Architecture

Слайд 314 Clean Architecture

4 Clean Architecture

Слайд 324 Clean Architecture
Document
Doc Attribute
Search use case:

4 Clean ArchitectureDocumentDoc AttributeSearch use case:

Слайд 334 Clean Architecture
Document
Doc Attribute
Search use case:




4 Clean ArchitectureDocumentDoc AttributeSearch use case:

Слайд 344 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;


4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;

Слайд 354 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;
Задать реквизиты поиска;

4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;Задать реквизиты поиска;

Слайд 364 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;
Задать реквизиты поиска;
Выполнить

поиск в локальном хранилище;


4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;Задать реквизиты поиска;Выполнить поиск в локальном хранилище;

Слайд 374 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;
Задать реквизиты поиска;
Выполнить

поиск в локальном хранилище;
Отправить запрос на сервер и получить результат;


4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;Задать реквизиты поиска;Выполнить поиск в локальном хранилище;Отправить запрос на сервер

Слайд 384 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;
Задать реквизиты поиска;
Выполнить

поиск в локальном хранилище;
Отправить запрос на сервер и получить результат;
Объединить

результаты;


4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;Задать реквизиты поиска;Выполнить поиск в локальном хранилище;Отправить запрос на сервер

Слайд 394 Clean Architecture
Document
Doc Attribute
Search use case:

Отобразить окно поиска;
Задать реквизиты поиска;
Выполнить

поиск в локальном хранилище;
Отправить запрос на сервер и получить результат;
Объединить

результаты;
Отобразить результаты.


4 Clean ArchitectureDocumentDoc AttributeSearch use case:Отобразить окно поиска;Задать реквизиты поиска;Выполнить поиск в локальном хранилище;Отправить запрос на сервер

Слайд 404 Clean Architecture
Search use case
Document
Doc Attribute

4 Clean ArchitectureSearch use caseDocumentDoc Attribute

Слайд 414 Clean Architecture
Search use case
DocServerInteractor
DocRepository
Doc
Search
View
Model
Navigation
Document
Doc Attribute

4 Clean ArchitectureSearch use caseDocServerInteractorDocRepositoryDocSearchViewModelNavigationDocumentDoc Attribute

Слайд 424 Clean Architecture
Search use case
DocServerInteractor
DocRepository
Doc
Search
View
Model
Navigation
SQLite ORM
Network Service
Navigation
for iOS
Navigation
for Android
Document
Doc Attribute

4 Clean ArchitectureSearch use caseDocServerInteractorDocRepositoryDocSearchViewModelNavigationSQLite ORMNetwork ServiceNavigationfor iOSNavigationfor AndroidDocumentDoc Attribute

Слайд 434 Clean Architecture
Use Cases
Server interactor
Repository
View
Model
Platform service adapter
Database
Service impl
Platform service impl
Platform

service impl
Entities
View
View

4 Clean ArchitectureUse CasesServer interactorRepositoryViewModelPlatform service adapterDatabaseService implPlatform service implPlatform service implEntitiesViewView

Слайд 444 Clean Architecture
Use case
Server interactor
Repository
View
Model
Platform service adapter
Database
Service impl
Platform service impl
Platform

service impl
Entity
View
View

4 Clean ArchitectureUse caseServer interactorRepositoryViewModelPlatform service adapterDatabaseService implPlatform service implPlatform service implEntityViewView

Слайд 454 Clean Architecture
Use case
Server interactor
Repository
View
Model
Platform service adapter
Database
Service impl
Platform service impl
Platform

service impl
Entity
View
View
Изолированность компонентов
Тестируемость
Гибкость: легче изменять компоненты
Надёжность и защищенность
Удобство разработки и

сопровождения
Возможность откладывать решения на потом
Возможность уйти в пятницу пораньше, чтобы попить поиграть в футбол
4 Clean ArchitectureUse caseServer interactorRepositoryViewModelPlatform service adapterDatabaseService implPlatform service implPlatform service implEntityViewViewИзолированность компонентовТестируемостьГибкость: легче изменять компонентыНадёжность и

Слайд 46Заключение

Заключение

Слайд 47Заключение
Xamarin: один язык и 2 платформы
SOLID
Clean Architecture
Разбиение на слабосвязанные компоненты
Компоненты

простые
Система в целом сложнее

Clean Architecture – это концепция архитектуры





ЗаключениеXamarin: один язык и 2 платформыSOLIDClean ArchitectureРазбиение на слабосвязанные компонентыКомпоненты простыеСистема в целом сложнееClean Architecture – это

Слайд 48Внимание


@anri_versen
Vladimir14Abakumov@gmail.com

Внимание@anri_versenVladimir14Abakumov@gmail.com

Слайд 50Спасибо за внимание


@anri_versen
Vladimir14Abakumov@gmail.com

Спасибо за внимание@anri_versenVladimir14Abakumov@gmail.com

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика