Основные возможности платформы Hexlet не доступны в вашем браузере.
Пожалуйста, обновитесь. Выбрать браузер.
курс

JS: Предметно-ориентированное проектирование

Курс посвящен процессу создания программных абстракций — моделей предметных областей. На примере разработки онлайн-системы для продажи билетов в кинотеатр, мы рассмотрим выделение правильных сущностей, нахождение связей между ними, и поговорим о предметно-ориентированном проектировании, инверсии контроля, принципе инверсии зависимостей, конечных автоматах.

Сначала рекомендуем пройти курс JS: Автоматное программирование

1.

Введение

теория (текст)

Познакомиться с курсом и ответить на вопрос: какая у программиста основная задача в работе? Рассмотреть проект, работа над которым будет проходить в течение всего курса.

2.

Use cases

теория (текст) / тесты

Рассмотреть UML и понятие use case. Выделить use cases в нашем проекте.

3.

Сущности и связи

теория (текст) / тесты / упражнение

Понять, что такое сущности и связи между сущностями. Выделить сущности в рассматриваемой нами системе, описать их свойства.

4.

Архитектура

теория (текст) / тесты / упражнение

Познакомиться с несколькими важными аспектами архитектур и рассмотреть стандартные, принятые в индустрии подходы к проектированию систем.

5.

Валидация

теория (текст) / тесты / упражнение

Познакомиться с темой валидации, рассмотреть пример использования библиотеки validation.js и добавить валидацию в нашу систему.

6.

Dependency Injection Container

теория (текст) / тесты / упражнение

Познакомиться с идеей инверсии зависимостей и внедрения зависимостей. Рассмотреть паттерн Service locator и перейти к DI Container как к самому продвинутому решению.

7.

Предметная область

теория (текст) / тесты / упражнение

Понять, что такое Domain-Driven Design (предметно-ориентированное проектирование) и ограниченный контекст.

8.

Мутация

теория (текст) / тесты / упражнение

Рассмотреть сценарий изменения сущности и выявить первое правило мутации: «не мутируй!». Взглянуть на несколько примеров изменений в нашей системе.

Испытания

В некоторых курсах есть практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. В этом курсе таких заданий нет, но вы можете посмотреть задания из других курсов.

Статистика
480
учащихся
155
вопросов
и ответов
8
часов
Учитель