Computer Science Center, Санкт-Петербург, весна 2022
Цель данного курса — ознакомление слушателей с основными принципами проектирования крупных программных продуктов. Курс лекционно-практический, будет довольно много теории, будет практика прямо в аудитории, и будут домашние задания на попроектировать и покодить, в основном командные. Закончится курс экзаменом и оценкой по пятибалльной системе.
- Архитектура программного обеспечения в целом, роль архитектуры в жизненном цикле программного обеспечения, роль архитектора в команде
- Объектно-ориентированное проектирование, хороший объектно-ориентированный код
- Моделирование, язык UML и, немного, другие визуальные языки
- Шаблоны проектирования (и антипаттерны), архитектурные стили
- Предметно-ориентированное проектирование
- Проектирование распределённых приложений и технологии, с ними связанные
- Развёртывание и немного DevOps
- Примеры архитектур
Аналогичные курсы читаются для студентов 3-го и 4-го курсов в СПбГУ и ВШЭ (так что если вы его уже слушали в своём вузе, записываться на него не стоит). Ожидается владение хотя бы одним объектно-ориентированным языком программирования и некоторый опыт (хоть раз в жизни написали что-то больше 5К строчек — прекрасно). Обязательно умение пользоваться git, очень желательно — писать юнит-тесты. Желательно уметь пользоваться CI и тулами для консольной сборки, но если с этим проблемы — научим.
- Лекция 1: Об архитектуре
- Лекция 2: Декомпозиция, объектно-ориентированное проектирование
- Лекция 3: Моделирование, UML
- Лекция 4: Моделирование и анализ
- Лекция 5: Моделирование поведения
- Лекция 6: Структурные шаблоны
- Лекция 7: Порождающие шаблоны
- Лекция 8: Поведенческие шаблоны
- Лекция 9: Архитектурные стили
- Лекция 10: Предметно-ориентированное проектирование
- Лекция 11: Проектирование распределённых приложений, часть первая: технические вопросы
- Лекция 12: Проектирование распределённых приложений, часть вторая: архитектурные вопросы