Содержание
- 2. Домашнее задание Поправить модели в Archi по замечаниям Провести декомпозицию своих приложений и отразить в модели
- 3. Что было на прошлой лекции
- 4. О чем будем говорить
- 5. ПАТТЕРНЫ (ШАБЛОНЫ) ПРОГРАММИРОВАНИЯ
- 6. История В 1970-е годы архитектор Кристофер Александр составил набор шаблонов проектирования разработки ПО. В 1987 году
- 7. Основные шаблоны проектирования
- 8. Порождающие шаблоны
- 9. Структурные шаблоны
- 10. Поведенческие шаблоны
- 11. Поведенческие шаблоны
- 12. Шаблоны генерации объектов Singleton Factory Method Abstract Factory Prototype
- 13. Singleton (одиночка) Шаблон, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную
- 14. Factory Method Шаблон, предоставляющий подклассам (дочерним классам) интерфейс для создания экземпляров некоторого класса. В момент создания
- 15. Abstract Factory Предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов.
- 16. Шаблоны программирования гибких объектов Composite Decorator Facade
- 17. Шаблоны выполнения задач Interpreter Strategy Observer Visitor Command
- 18. Шаблоны архитектуры программных приложений Model-View-Controller (MVC) Модель-представление-контроллер. Model-View-View-Model Model-View-Presenter. Presentation-Abstraction-Control. Naked objects. Hierarchical Model-View-Controller. View-Interactor-Presenter-Entity-Routing (VIPER).
- 19. Model-View-Controller (MVC) Модель-представление-контроллер схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента:
- 22. Model-View-View-Model Представлен в 2005 году Джоном Госсманом (John Gossman) как модификация шаблона Presentation Model. Ориентирован на
- 23. Model-View-View-Model
- 24. Model-View-Presenter Основным отличием является класс Presenter, в который выносится логика обработки событий, форматирования данных и управления
- 25. Сравнение шаблонов
- 26. Presentation-Abstraction-Control (PAC) Разделение ПО на три типа компонентов, ответственных за конкретные аспекты функциональности приложения. Компонент абстракции
- 27. Presentation-Abstraction-Control
- 28. Naked objects 1. Вся бизнес-логика должна быть инкапсулирована в бизнес-объект domain objects. Данный принцип не является
- 29. Hierarchical Model-View-Controller Одно из расширений архитектурного паттерна MVC, позволяющее решить некоторые проблемы масштабируемости приложений, имеющих классическую
- 30. Hierarchical Model-View-Controller
- 31. View-Interactor-Presenter-Entity-Routing (VIPER). Interactor, который содержит бизнес-логику, предусмотренную сценарием. Presenter, который содержит логику подготовки содержимого для отображения
- 32. МИКРОСЕРВИСНАЯ АРХИТЕКТУРА
- 33. Что такое микросервисная архитектура Вариант сервис-ориентированной архитектуры программного обеспечения, направленный на взаимодействие насколько это возможно небольших,
- 34. Что такое микросервисная архитектура «Архитектура на основе свободно сопряжённых сервисов с ограниченными контекстами. (Loosely coupled service
- 36. Ограниченный контекст Ограниченный контекст — это понятие явных границ вокруг какого-то бизнес-контекста. Например, в рамках электронной
- 37. Что такое микросервис «Это небольшие, автономные, совместно работающие сервисы» Сэм Ньюмен «микросервис является самостоятельным образованием, которое
- 38. Компонентное представление через сервисы Компонент — это элемент системы, который можно независимо заменить, усовершенствовать (Мартин Фаулер)
- 39. Компонентное представление через сервисы Взаимодействие выполняется за счёт межпроцессной связи, вызовов веб-сервисов, очереди сообщений и т.
- 40. Почему плох монолитный код «При создании дополнительных свойств программы разрастается и база программного кода. Со временем
- 42. Монолит vs микросервисы
- 44. Гетерогенность Гетерогенность — это возможность построить систему с использованием разных языков программирования. У подхода есть ряд
- 45. Микросервисы позволяют упростить использование разнообразных технологий
- 46. Организация человеческих ресурсов в соответствии с возможностями бизнеса Когда-то внутри команд разработчиков самоорганизовывались группы на основе
- 47. Организация человеческих ресурсов в соответствии с возможностями бизнеса При микросервисном подходе команды должны организовываться на основе
- 48. Закон Конвея Подход сочетается с законом Конвея, который гласит, что если нам нужны высокосвязные раздельные микросервисы,
- 49. Продукты, а не проекты Раньше был такой подход: команда создаёт какую-то функциональность, а затем передаёт её
- 50. Децентрализованное управление данными При традиционном подходе у приложения лишь одна база данных, и много разных компонентов
- 51. Децентрализованное управление данными При микросервисной архитектуре, когда каждый бизнес-компонент представляет собой микросервис, все компоненты обладают собственными
- 52. Архитектура с эволюционным развитием Архитектура всего приложения не должна быть статичной, необходима возможность её простого развития
- 53. Взаимодействие между микросервисами «Обмен данными между самими сервисами ведется через сетевые вызовы, чтобы упрочить обособленность сервисов
- 54. «Нужно подумать и о самой сети» «Когда речь идет о распределенном вычислении, самым распространенным первым заблуждением
- 55. Размер микросервисов «Когда решается вопрос о достаточности уменьшения объема кода, я предпочитаю размышлять в следующем ключе:
- 56. Требования к микросервисам По мнению Джеймса Льюиса, микросервисы должны: быстро масштабироваться; дёшево заменяться; быть устойчивыми к
- 57. Насколько велик микросервис? Есть разные мнения о размерах микросервисов. Мартин Фаулер описывает случаи, когда соотношение количества
- 58. Микросервисная архитектура Подход к созданию приложения, подразумевающий отказ от единой, монолитной структуры. Вместо того чтобы исполнять
- 59. Свойства микросервисной архитектуры модули можно легко заменить в любое время: акцент на простоту, независимость развёртывания и
- 60. Архитектура должна: «делать продукт гибче и устойчивее к сбоям облегчать понимание, отладку и изменение кода помогать
- 61. Философия микросервисов Философия микросервисов фактически копирует философию Unix, согласно которой каждая программа должна «делать что-то одно,
- 62. Способ автоматизировать хаос Одна из причин использования микросервисов заключается в том, что мы хотим иметь возможность
- 63. Эрик Эванс «Реальность разработки ПО такова, что вначале мы никогда не имеем полного понимания задачи. Наше
- 64. Мартин Фаулер говорит, что необходимо иметь возможность: Быстро вводить в эксплуатацию: быстро развёртывать новые машины для
- 65. Фред Джордж утверждает то же самое: есть огромная потребность ускорить работу, чтобы выдержать конкуренцию! Он приводит
- 66. Среды выполнения микросервисов Системы управления контейнеризованными приложениями (такие как Kubernetes и её надстройки OpenShift и CloudFoundry,
- 67. Docker Программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы;
- 69. Усложнившийся мониторинг Мониторинг крайне важен (Ребекка Парсонс), нам необходимо сразу узнавать о том, что сервер упал,
- 70. Сильная devops-культура Нужны devops’ы для мониторинга и управления, при этом между ними и разработчиками должны быть
- 71. Опасности Нужно управлять гибкостью технологии Не исключено, что обилие технологий и библиотек выйдет из-под контроля. Необходимо
- 72. Роль архитектора «У архитекторов весьма важная задача. Они отвечают за координацию технического представления, помогающего нам дать
- 73. Роль архитектора «Требования у нас изменяются куда быстрее, чем у тех, кто проектирует и строит здания,
- 74. Архитектор ПО – Архитектор города Архитектор здания «Смысл профессии в том, что он вычерчивает подробные планы,
- 75. Зонирование «Зоны - это границы сервисов или, возможно, собранных в крупные модули групп сервисов. В качестве
- 76. Принципы Принципы являются правилами, выведенными с целью выверить все, что делается с некой более крупной целью,
- 77. Двенадцать принципов Heroku Это набор конструкторских принципов, сформулированных с целью помочь в создании приложений, которые смогли
- 78. Двенадцать принципов Heroku V. Сборка, релиз, выполнение Строго разделяйте стадии сборки и выполнения VI. Процессы Запускайте
- 79. Двенадцать принципов Heroku X. Паритет разработки/работы приложения Держите окружения разработки, промежуточного развёртывания (staging) и рабочего развёртывания
- 80. Закон Постела Пример клиента, старающегося быть как можно гибче в использовании сервиса, демонстрирует закон Постела, известный
- 81. Технологические принципы «В пределах отдельно взятого сервиса можно будет вполне смириться с тем, что команда, ответственная
- 82. Инструкции Инструкции описывают способы соблюдения принципов. Это набор подробных практических предписаний для выполнения задач. Зачастую они
- 84. Оркестровка и хореография При использовании оркестрового принципа за основу берется центральный интеллект, направляющий процессы и управляющий
- 85. Процессы, предназначенные для создания нового клиента
- 86. Оркестровка
- 87. Хореография
- 88. Управление версиями микросервисов При семантическом управлении версиями у каждой версии есть номер, имеющий форму MAJOR.MINOR.PATCH (ВАЖНЫЙ.ВТОРОСТЕПЕННЫЙ.ИСПРАВЛЕНИЕ).
- 89. Использование нескольких параллельных версий сервиса Прежние потребители направляют свой трафик к прежней версии, а новые потребители
- 90. Домашнее задание Поправить модели в Archi по замечаниям Провести декомпозицию своих приложений и отразить в модели
- 92. Скачать презентацию