Slide 1

Slide 1 text

Архитектура в мобильных проектах Основы, обзор, описание Алексей Демедецкий. Ноябрь 2014 @ Ciklum speakers corner

Slide 2

Slide 2 text

Определения

Slide 3

Slide 3 text

Архитектура - описание принципов распределения ролей и ответственностей в системе

Slide 4

Slide 4 text

Проектирование - процесс модификации архитектуры

Slide 5

Slide 5 text

Разработка - процесс забивания на архитектуру

Slide 6

Slide 6 text

Разработка - процесс поиска компромиса c архитектурой

Slide 7

Slide 7 text

Цели архитектуры

Slide 8

Slide 8 text

Цели • Гибкость • Предсказуемость • Жесткость • Понятность

Slide 9

Slide 9 text

Роли в проектировании

Slide 10

Slide 10 text

Роли • Команда • Бизнес • Тестировщики

Slide 11

Slide 11 text

Контекст принятия решений

Slide 12

Slide 12 text

Требования Команда Сроки

Slide 13

Slide 13 text

Контекст - определяющий момент в принятии решения.

Slide 14

Slide 14 text

Все решения принимаются с учетом контекста, поэтому слабо переносимы.

Slide 15

Slide 15 text

Характеристики архитектуры

Slide 16

Slide 16 text

• Связанность по коду (3) • Связанность по фичам (7) • Модульность (8) • Прогнозируемость (9) • Самоподобие(10)

Slide 17

Slide 17 text

Актуальность

Slide 18

Slide 18 text

Способы анализа архитектуры

Slide 19

Slide 19 text

• Метрики кода (6) • Процессные метрики (8) • Мнение команды (10)

Slide 20

Slide 20 text

Интеграция архитектур и фреймворков

Slide 21

Slide 21 text

Мета-архитектура

Slide 22

Slide 22 text

Мета-Мета-архитектура

Slide 23

Slide 23 text

Типы архитектур в мобильных приложениях

Slide 24

Slide 24 text

• Платформо-специфическая (как все) • Транзакционная • С моделью доменной области • «Шина событий» • Слоевая • Радиальная

Slide 25

Slide 25 text

Фреймворк - каркас помогающий в решении проблем Архитекура - каркас для выбора будущих проблем

Slide 26

Slide 26 text

Стоимость принятия архитектурных решений

Slide 27

Slide 27 text

Время Стоимость Раньше == Дешевле?

Slide 28

Slide 28 text

Так было раньше.

Slide 29

Slide 29 text

Время обратной связи >> Время изменения архитектуры

Slide 30

Slide 30 text

Время обратной связи ~ Время изменения архитектуры

Slide 31

Slide 31 text

Каждое решение отрезает путь для тысячи вариантов.

Slide 32

Slide 32 text

Время Стоимость Вовремя == Дешевле!

Slide 33

Slide 33 text

Рекомендации по выбору хороших решений

Slide 34

Slide 34 text

Литература • http://martinfowler.com/articles/designDead.html • http://alistair.cockburn.us/index.php/ Hexagonal_architecture • http://silkandspinach.net/2005/05/23/databases-as-life- support-for-domain-objects • http://silkandspinach.net/2005/11/28/gravity-and- software-adaptability • http://martinfowler.com/eaaDev/PresentationModel.html

Slide 35

Slide 35 text

• http://www.amazon.com/Code-Complete-Practical- Handbook-Construction/dp/0735619670 • http://www.extremeprogramming.org • http://www.martinfowler.com/books/eaa.html

Slide 36

Slide 36 text

• http://blog.8thlight.com/arlandis-lawrence/2014/08/03/ prideful-programming.html • http://www.javaworld.com/article/2076128/design- patterns/hmvc--the-layered-pattern-for-developing- strong-client-tiers.html • http://www.targetprocess.com/articles/visual- specifications.html • https://www.destroyallsoftware.com/talks/boundaries • http://www.targetprocess.com/articles/speed-in- software-development.html

Slide 37

Slide 37 text

Архитектура - один из аспектов качества продукта.

Slide 38

Slide 38 text

Ориентированность на продукт • http://www.youtube.com/watch?v=I5RqcYzrY4Y

Slide 39

Slide 39 text

Вопросы Алексей Демедецкий Skype: nobidon e-mail: [email protected]