Перейти к содержанию

Объектно-ориентированный анализ и проектирование

О курсе

Курс о том, как из требований вырастает модель предметной области и как эта модель превращается в код, который переживает вторую итерацию.

Понятия курса языконезависимы: класс, инкапсуляция, полиморфизм существуют в любом объектном языке. C# взят как основной язык примеров по знакомости аудитории; Python, TypeScript и другие появляются там, где конструкция языка показывает понятие с новой стороны — множественное наследование, метаклассы, структурная типизация.

Терминология — по глоссарию GoF («Приёмы объектно-ориентированного проектирования»), каталог запахов кода — по классификации Refactoring.Guru, приёмы рефакторинга — по Фаулеру.

Программа

Раздел Лекции
1. Основы и принципы ООП Объектная модель, Архитектура и рефакторинг
2. Моделирование на языке UML Диаграммы классов, Последовательности и состояния
3. Шаблоны проектирования (GoF) Порождающие, Структурные, Поведения
4. Шаблоны корпоративных приложений Шаблоны корпоративных приложений

К каждому разделу есть материалы для самостоятельной работы — они в меню слева помечены «Самостоятельно». По ним предусмотрены письменный отчёт и код в репозитории.

Что ожидается в сдаче работ

Помимо кода в каждой работе должны быть:

  • диаграммы (классов, последовательностей, состояний) в текстовом виде — PlantUML или Mermaid, а не только картинки;
  • краткое обоснование принятых проектных решений в README.md работы;
  • код, отражающий спроектированную модель, а не написанный отдельно от неё.

Почему диаграммы текстом

Их видно в diff'е, по ним можно оставить построчный комментарий при проверке, и они не устаревают отдельно от кода. Экспорт в PNG — по желанию, рядом с исходником.

Литература

  • Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приёмы объектно-ориентированного проектирования. Паттерны проектирования.
  • Фаулер М. Рефакторинг. Улучшение проекта существующего кода.
  • Фаулер М. Шаблоны корпоративных приложений.
  • Мартин Р. Чистая архитектура.