PRO курс

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

359 сообщений в сообществе 1012 учащихся

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

Чему вы научитесь:

  • Использовать предметно-ориентированный дизайн в своей повседневной практике
  • Грамотно переносить логику предметной области на код (сущности, сервисы)
  • Правильно строить архитектуру сложных бизнес-приложений, разделять код на слои в соответствии с шаблоном Service Layer
  • По максимуму использовать возможности ООП для организации легко расширяемого и тестируемого кода.
сущности сервисы репозитории валидация инверсия зависимостей
Последнее обновление: 21 августа 2020

Уроки курса

  • 1

    Введение

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

    Use cases

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

    тесты

  • 3

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

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

    тесты

    упражнение

  • 4

    Архитектура

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

    тесты

    упражнение

  • 5

    Валидация

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

    тесты

    упражнение

  • 6

    Dependency Injection Container

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

    тесты

    упражнение

  • 7

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

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

    тесты

    упражнение

  • 8

    Изменяемость

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

    тесты

    упражнение

Автор

Аватар пользователя Kirill Mokevnin

Кирилл Мокевнин

Сооснователь и CEO образовательного проекта Хекслет. Программирую с 2007 года. За это время прошёл путь от разработчика до технического директора и управляющего отдельным подразделением (филиалом). Управлял командами, в которых больше 50 разработчиков.

  • Программирую на языках: Elixir, Clojure, JavaScript, PHP, Ruby.
  • Соорганизатор конференции Nastachku.ru.
  • Вимер.
  • Топлю за DevOps и автоматизированные тесты.

Впечатления

Какая же красивая и элегантная по своим возможностям "вязь" получается с использованием контейнера зависимостей. Один восторг от задания!

Очень интересный курс, дающий фундаментальные знания. Must have так же как и СИКП. К сожалению отсутствуют испытания.

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

Хочу сказать, что охре.... задание, офигенное задание!!! Спасибо!

Курс JS: Предметно-ориентированное проектирование
продолжительность
9 часов
награда
40 баллов