Архитектура и основные шаблоны проектирования. Научитесь применять паттерны проектирования и станьте архитектором программного обеспечения
Для всех, кто влюблен в технологии!
Специальные скидки ко дню компьютерщика! Забирай промокод в нашем чате ➞
Подробнее

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65

Архитектура и шаблоны проектирования

Курс для разработчиков, которые хотят изучить основные паттерны проектирования и научиться применять их, находить им замену в сложных ситуация и научиться мыслить, как архитектор программного обеспечения
Подойдет ли мне этот курс?

Длительность

3 месяца

Начало

25 марта

Занятия

Сб 11:00, Ср 20:00

Общая стоимость

30 000 ₽

В месяц

14 000 ₽

В кредит:

14000 ₽ в месяц

Хочу дешевле
Общая стоимость
30 000 ₽
В месяц: 14 000 ₽
В кредит: 30000 ₽
в месяц
Продолжительность
3 месяца, 4 академ. часа в неделю
Сб 11:00, Ср 20:00
Начало занятий
25 марта
Что даст вам этот курс

С одной стороны, разработка ПО это процесс ведения разработки, тестирование, быстрая разработка и устранение дефектов.

С другой, это знание всех участвующих бизнес-процессов, умение описать архитектуру на разных уровнях представления, что необходимо для контроля архитектуры ПО на уровне большого предприятия. Будем описывать бизнес-процесс, представлять взаимодействие на уровне данных и компонентном уровне.

С третьей, это внутренняя компоновка компонентов и модулей разрабатываемого продукта,
подразумевающая расширяемость, масштабируемость. Это можно достичь, используя шаблоны проектирования, которые изучим на этом курсе.

Всему вышесказанному посвящён этот курс.

Если вы сами разрабатываете программные продукты, занимаетесь интеграцией или развитием существующих продуктов или или только встали на стезю разработки ПО, этот курс для вас.


После курса вы будете:
1.применять шаблоны проектирования в разработках
2.знать современные процессы разработки программного обеспечения
3.внедрять DevOps в свои процессы разработки, улучшая код и минимизируя ошибки
4.уметь вести разработку от постановки бизнес-задачи до реализации на production сервере
5.уметь отрисовывать бизнес-процессы и схемы.
"Откуда ноги растут" или что предшествует программированию, 11 марта в 20:00
На уроке рассмотрим и научимся применять: что такое монолитное приложение, многоуровневая архитектура,бессерверная архитектура, система, управляемая событиями,сервис-ориентированная система и микросервисная архитектура.
Ведет
Матвей
Калинин
Предыдущий открытый вебинар
Всё о курсе «Архитектор программного обеспечения», 18 марта в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Матвей
Калинин
Преподаватели
Матвей Калинин
Владислав Родин
Опыт разработки программного обеспечения с 1990 года. Работал и с привычными ныне dos, windows и linux системами, и с редко встречающимися специализированными вычислительными устройствами (системами реального времени, ibm i). Профессионально использую C++, С#, assembler, java, RPG.

Закончил МАИ, к.т.н., старший преподаватель, кафедра «Робототехнические и интеллектуальные системы».
Участвовал в проектах разработки программного обеспечения, связанного с навигацией. Решал задачи для процессоров цифровой обработки сигналов в операционных системах реального времени включая параллельную обработку данных.
Разработал и вёл курс вероятностных конечных автоматов.

В 2000-2002г самостоятельно разработал, используя C++ и Dephi, биллинговый комплекс АСР «ИнтБиллинг» (оборудование VocalTec). Сертификат № ОС/1-СТ-219 Министерства Российской Федерации по связи и информатизации. Биллинг выставлялся на СвязьЭкспоком, имел инсталляции заказчиков.

Долгое время работал с Java2EE (back-end и front-end). Сначала в первом агрегаторе контента для сотовых устройств "Никита-мобайл". Затем в компании "Микротест" занимался разработкой и реализацией систем информирования пользователя, основанных на web интерфейсе и являющихся частью больших распределённых систем, таких как биллинговые системы (Oracle BRM), CRM (Oracle Siebel), интеграционные шины (Tibco), SMS шлюзы.
С 2016 года - Главный разработчик на ibm i в одном из крупнейших банков страны

Люблю и умею преподавать. Более 20 лет помимо программирования изучаю и обучаю айкидо (5й дан Айкикай).

Подобно технике боевых искусств мы изучаем базис: языки, паттерны, платформы. Чтобы затем перевести это всё в зодчество ПО, его архитектуру. С другой стороны, программный продукт всегда есть отражение создателя. Любая система, согласно закону Конвея, есть отражение людей, создавших её. Программирование суть искусство в мире электронных форм. Взрослый ничем не отличается от маленького ребенка, играющего с кубиками. Только кубики другие. Творчество это основа всего. И свобода ошибаться и искать. Обучение это игра и освоение новых миров.

Руководитель программы
Работал Java- разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом, так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и миграции БД. Строил С4- архитектурные схемы для проектов. Преподаю в Московском Физико-Техническом Институте и на портале foxminded.

Преподаватель
Матвей
Калинин
Владислав
Родин
Преподаватели
Матвей Калинин
Опыт разработки программного обеспечения с 1990 года. Работал и с привычными ныне dos, windows и linux системами, и с редко встречающимися специализированными вычислительными устройствами (системами реального времени, ibm i). Профессионально использую C++, С#, assembler, java, RPG.

Закончил МАИ, к.т.н., старший преподаватель, кафедра «Робототехнические и интеллектуальные системы».
Участвовал в проектах разработки программного обеспечения, связанного с навигацией. Решал задачи для процессоров цифровой обработки сигналов в операционных системах реального времени включая параллельную обработку данных.
Разработал и вёл курс вероятностных конечных автоматов.

В 2000-2002г самостоятельно разработал, используя C++ и Dephi, биллинговый комплекс АСР «ИнтБиллинг» (оборудование VocalTec). Сертификат № ОС/1-СТ-219 Министерства Российской Федерации по связи и информатизации. Биллинг выставлялся на СвязьЭкспоком, имел инсталляции заказчиков.

Долгое время работал с Java2EE (back-end и front-end). Сначала в первом агрегаторе контента для сотовых устройств "Никита-мобайл". Затем в компании "Микротест" занимался разработкой и реализацией систем информирования пользователя, основанных на web интерфейсе и являющихся частью больших распределённых систем, таких как биллинговые системы (Oracle BRM), CRM (Oracle Siebel), интеграционные шины (Tibco), SMS шлюзы.
С 2016 года - Главный разработчик на ibm i в одном из крупнейших банков страны

Люблю и умею преподавать. Более 20 лет помимо программирования изучаю и обучаю айкидо (5й дан Айкикай).

Подобно технике боевых искусств мы изучаем базис: языки, паттерны, платформы. Чтобы затем перевести это всё в зодчество ПО, его архитектуру. С другой стороны, программный продукт всегда есть отражение создателя. Любая система, согласно закону Конвея, есть отражение людей, создавших её. Программирование суть искусство в мире электронных форм. Взрослый ничем не отличается от маленького ребенка, играющего с кубиками. Только кубики другие. Творчество это основа всего. И свобода ошибаться и искать. Обучение это игра и освоение новых миров.

Руководитель программы
Владислав Родин
Работал Java- разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом, так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и миграции БД. Строил С4- архитектурные схемы для проектов. Преподаю в Московском Физико-Техническом Институте и на портале foxminded.

Преподаватель
Необходимые знания
Знание языка программирования и принципов ООП. Базовое языка JAVA как примера, на котором будет проводиться часть объяснений.
Процесс обучения
Образовательный процесс происходит ONLINE в формате вебинаров (язык преподавания — русский). В рамках курса слушателям предлагаются к выполнению домашние задания, которые позволяют применить на практике знания, полученные на занятиях. По каждому домашнему заданию преподаватель дает развернутый фидбек. В течение всего учебного процесса преподаватель находится в едином коммуникационном пространстве с группой, т.е. при обучении слушатель может задавать преподавателю уточняющие вопросы по учебным материалам.
Программа обучения
Модуль 1
Основные принципы
Модуль 2
Процесс разработки программного обеспечения
Модуль 3
Архитектура программного обеспечения
Модуль 4
Шаблоны проектирования
Модуль 4
Проектная работа
Основные принципы
Тема 1: ООП or not ООП
реализовывать принципы, составляющие ООП и без ООП;
оценить принципы вне скрытой реализации языков, использующих подход ООП.
25 марта, 20:00 — 21:30
Домашние задания: 1
1 Написать решение такой задачи: Для объектов класса List определить операции проверки списка на пустоту, добавления элемента в начато списка, в конец списка, подсчет числа вхождений элемента в список, удаление элемента из списка. Продемонстрировать работу
Тема 2: "А если их будет много?" Однопоточное и многопоточное приложения
познакомиться с плюсами и минусами обоих подходов.

для чего создаются многопоточные приложения?
варианты: многонитевые ( POSIX threads), многозадачные (mutijobs - ibm I, linux). Преимущества.
ограничения. Синхронные и асинхронные процессы.
проблемы, возникающие при разработке. Взаимодействия потоков: мютексы, семафоры, события, критические секции"
28 марта, 11:00 — 12:30
Домашние задания: 1
1 Напишите программу (java), которая каждую секунду отображает на экране данные о времени, прошедшем от начала сессии, а другой ее поток выводит сообщение каждые 5 секунд. Предусмотрите возможность ежесекундного оповещения потока, воспроизводящего сообщение
Тема 3: "Я его слепила из того, что было" или интеграция программного обеспечения
узнать, как связать несвязуемое, какие подходы существуют.

интеграция данных, интеграция приложений;
факторы, влияющие на принятие решений по интеграции.
1 апреля, 20:00 — 21:30
Домашние задания: 1
1 Описать, как будет проходить интеграция данных и приложений в проекте.
Процесс разработки программного обеспечения
Тема 1: "Just do it!" или методологии разработки ПО
объяснить различные подходы к разработке ПО, их особенностями и ограничениями.

методологии к разработке ПО: waterfall, agile, scrum, xp, RAD.
4 апреля, 11:00 — 12:30
Домашние задания: 1
1 Какой подход лучше выбрать для реализации проекта? Описать причины выбора.
Тема 2: DevOps or not DevOps
рассмотреть процесс создания и поставки ПО в рамках devops.

проблемы доставки ПО;
4 фактора devops;
версионирование, тестирование, CI, CD, мониторинг;
инструментарий.
8 апреля, 20:00 — 21:30
Архитектура программного обеспечения
Познакомимся с понятием архитектуры. Построим бизнес процесс на примере задачи. Разделим на функциональные процессы. Обсудим, как можно решить подобную задачу, какими подходами. Узнаем про закон "Конвея".

На примере задачи проведём построение функциональных процессов
Тема 1: "Откуда ноги растут" или что предшествует программированию
познакомиться с понятием архитектуры;
рассмотреть архитектурные стили.

понятие архитектуры системы как таковой.
стили: монолитное приложение, многоуровневая архитектура, бессерверный архитектура, система, управляемая событиями, сервис-ориентированная система, микросервисная архитектура.
11 апреля, 11:00 — 12:30
Домашние задания: 1
1 На этом этапе студент уже определился с проектом. Или, на выбор, выбирает из заданий: -Платформа чат сообщений -Интернет-магазин выбрать архитектурный стиль для проекта. Описать причины выбора. Возможно, в проекте будет несколько подсистем. Тогда опис
Тема 2: Общие шаблоны распределения ответственностей
познакомится с функциональным разделением функционала;
рассмотреть 9 шаблонов GRASP (они понадобятся для пояснения более широких понятий, таких как микросервисная архитектура).

информационный эксперт;
создатель;
контроллер;
слабое зацепление;
высокая связность;
полиморфизм:
чистая выдумка;
посредник;
устойчивость к изменениям.
15 апреля, 20:00 — 21:30
Домашние задания: 1
1 Определиться, какие шаблоны и как будут применяться в проекте. Описать и прислать.
Тема 3: Микросервисная архитектура
рассмотреть описание, характерные свойства и характеристики;
оценить порядок перехода от "монолита".

понятие микросервисной архитектуры;
свойства и характеристики;
Eclipse Microprofile в версии java Jakarta EE;
сервер приложений Liberty.
18 апреля, 11:00 — 12:30
Тема 4: Системы обмена сообщениями
оценить архитектурные концепции построения систем обмена сообщений.

стили интеграции (File Transfer, RPI, Shared Database, Messaging);
основные концепции обмена сообщениями;
каналы, сообщение, маршрутизация, трансляция, конечная точка.
22 апреля, 20:00 — 21:30
Домашние задания: 1
1 Определиться со стилем интеграции, описать выбранную систему обмена сообщениями.
Тема 5: Процесс-всему голова
построить бизнес-процесс на примере задачи;
разделить на функциональные процессы;
обсудить как можно решить подобную задачу, какими подходами;
разобраться в законе "Конвея".

Чтобы понять, какой стиль применять, важно знать бизнес процесс (как описание того, что важно создать).
декомпозиция процесса на функциональные процессы
25 апреля, 11:00 — 12:30
Домашние задания: 1
1 Описать бизнес-процесс выбранной задачи для проекта. Разделить его на функциональные процессы.
Тема 6: "Как это выглядит?" или как нарисовать процесс
разобраться, как рисуется процесс, его составные части;
использовать оба вида нотаций.

блок-схемы алгоритмов;
нотации бизнес-процессов BPMN, EPS.
29 апреля, 20:00 — 21:30
Домашние задания: 1
1 Отрисовать функциональные процессы, входящие в выбранный проект
Тема 7: Знакомство с "кирпичиками" построения систем
рассмотреть на примере ракурсы, на которые смотрит архитектор ПО;
строить схемы видов.

части архитектуры: системы, компоненты, интерфейсы, потоки данных;
архитектурные виды (модульные, компонентные, информационные, размещения);
понятие архитектурного шаблона.
2 мая, 11:00 — 12:30
Домашние задания: 1
1 Нарисовать компонентную, информационную схемы проекта.
Шаблоны проектирования
Тема 1: "Останется только один"
применять шаблон "Singleton"

смысл «Одиночки», когда он применяется с точки зрения архитектуры, когда есть один канал (например, если если есть сокетное соединение, и по нему передаётся информация ) и его проще контролировать, глобальные настройки и т.д.;
плюсы, минусы;
что делать с синглтоном в многопоточных приложениях?
как создать синглтон?
как проверить, что он действительно один?
6 мая, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 2: Как связать несвязываемое и передать непередаваемое
применять шаблон "адаптер".

две команды: одна проектирует приложение со своим интерфейсом (например, передача данных по сокетному соединению), другая проектирует своё приложение, которое должно отправлять сообщение в другую систему. Обе команды не общаются друг с другом. Задача сформировать интерфейс.
Затем собираем их вместе в одной комнате зума и пытаемся «скрестить ежа с ужом».
13 мая, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 3: Пора делегировать. Дай команду, и ""Заместитель"" (Proxy) выполнит задачу
научитесь применять шаблон.

Рассматривается работа двух объектов: клиента и сервера. Обсуждение причин необходимости перехвата доступа и взятия его под контроль.
Рассмотрение различных видов заместителя (удалённый, виртуальный, замещающий, кеширующий, синхронизирующий...)
Рассмотрение на конкретном примере

Преимущества и недостатки.
23 мая, 11:00 — 12:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 4: Декоратор" Новые свойства без изменения.
узнаете и научитесь применять шаблон.

Основной принцип - добавление функциональности к существующему объекту, возможно, с учётом очередности действий. Нужен тот, кто это будет осуществлять.
Реализации.
Есть некоторая система - интерфейс.
"Декоратор", "Адаптер" и "Прокси". Сходства и различия.
Задание: Одна команда реализует прокси, а другая адаптер к некой системе.
Затем обсуждение различий.
27 мая, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 5: От кустарщины к разнообразию фирменных изделий. ""Фабрика"
узнаете и научитесь применять шаблон.
Проблемы сильносвязанных структур.
От конкретной реализации к интерфейсам.
Инкапсуляция создания объектов.
Что если делегировать обязанности выпуска продукта дочерним структурам?
А если последует расширение функциональности?
Шаблон ""Фабричный метод""
От Фабрики к абстракциям. ""Абстрактная фабрика""
Рассмотрим на примере.
30 мая, 11:00 — 12:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 6: Есть кофе и… кофе. ""Шаблонный метод"
узнаете и научитесь применять шаблон.
Цели можно достичь разными путями. Порой важно оперировать не объектами, а процессами.
От бизнес процесса к абстрактным общим шагам. Декомпозиция. Временная диаграмма.
Один процесс, да шаги разные. От кофе к супу.
Необходимость контроля процесса. Методы-перехватчики.
Примеры использования.
Рассмотрим применение на практическом примере.
3 июня, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 7: Как дела? ""Состояние"
узнаете и научитесь применять шаблон.
Состояние не так однозначно, как кажется.
Рассмотрение проводится на конкретном примере.
Диаграмма состояний и переходов.
Обзор конечных автоматов. Простая прямая реализация.
Внезапно потребовалось расширение функциональности. От простой реализации объектов к интерфейсам.Локализация поведения каждого состояния в отдельных классах.Инкапсуляция состояний.
Определение шаблона ""Состояние"" как результат анализа примера.
6 июня, 11:00 — 12:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 8: Золушка или как перебрать быстро и успеть на бал. ""Итератор"
узнаете и научитесь применять шаблон.
Коллекция как сложно упорядоченный набор данных. Это и списки и деревья. Связи могут быть сложными.
Надо подобрать пример.
Как инкапсулировать этот процесс? Один общий интерфейс для перебора, множество реализаций.
Итератор - как работает?
Рассмотрим на решении примера.
10 июня, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 9: всё решает  "Команда"
узнаете и научитесь применять шаблон.
Хороший результат командной работы зависит от слаженности работы каждого.
Команда выполняет некоторые действия и, в то же время, команда есть часть бизнес процесса, определяющего последовательность выполнения действий.
Снова нужен интерфейс. Какие операции у него будут?
На примере построим процесс выполнения задачи с использованием шаблона ""Команда"".
Как здесь может участвовать ""Состояние""?
13 июня, 11:00 — 12:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 10: конвейер обработки "Цепочка обязанностей"
узнаете и научитесь применять шаблон.
Как увязать множество типов сообщений, и множество обработчиков этих сообщений? Превращения элементов поведения в объекты. Рассмотрим на примере - формируем диаграмму классов.
17 июня, 20:00 — 21:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Тема 11: MVC» и "MVP"
узнаете и научитесь применять шаблоны Рассмотрим составляющие шаблонов. Различия. Разделим группу на команды и каждая реализует свою задачу (MVC или MVP) Затем обсудим.
20 июня, 11:00 — 12:30
Домашние задания: 1
1 Описать применение шаблона в проекте.
Проектная работа
Тема 1: Вводное занятие
определимся с финальной архитектурой проекта.

К этому времени у студентов должны уже быть:
выбранный стиль архитектуры
описание бизнес-процессов
отрисованные функциональные процессы
Копонентная схема
Информационная схема
Используемые шаблоны
Описание интеграций
9 мая, 11:00 — 12:30
Домашние задания: 1
1 Обсуждаем вопросы проектирования, корректируем принятые решения
Тема 2: Консультация по проектам
промежуточный контроль, коррекция проектов
16 мая, 11:00 — 12:30
Тема 3: Защита проектов
защита проекта содержит:
виртуальную машину, где развёрнут проект (при необходимости)
Документацию:
-описание бизнес-процессов
-отрисованные функциональные процессы
-Копонентная схема
-Информационная схема
-Описание интеграций
Доклад (15 минут)
20 мая, 20:00 — 21:30
Выпускной проект
Выпускной проект — возможность закрепить навыки, наработанные в процессе обучения. Это отдельная работа, на выполнение которой отводится последний месяц обучения.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Шаблон проектирования «Адаптер»
Матвей Калинин
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование

  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)

  • применять шаблоны проектирования в разработках

  • получите сертификат об окончании курса

  • внедрять DevOps в свои процессы разработки, улучшая код и минимизируя ошибки

  • получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)

Дата выдачи сертификата: 16 июля 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Архитектура и шаблоны проектирования»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018 года.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Архитектура и шаблоны проектирования»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018 года.
Общая стоимость
30 000 ₽
В месяц: 14 000 ₽
В кредит: ₽ в месяц
Продолжительность
3 месяца
Начало занятий
25 марта
Специальные скидки!
Только до 23 февраля! Забирай промокод в нашем чате ➞