Чистая архитектура и DDD для 1С-разработчиков через Unity и C#
О чём курс
Евгений Шилов разбирает принципы чистой архитектуры и предметно-ориентированного проектирования (DDD) применительно к разработке на платформе 1С. Вы научитесь проектировать прикладные сценарии и подсистемы с нуля, отделять бизнес-логику от интерфейса и механизмов хранения данных, управлять зависимостями и встраивать новые решения в существующие конфигурации без нарушения архитектурных границ.
О чём курс
Обучение построено вокруг переноса проверенных архитектурных практик из объектно-ориентированного стека в экосистему 1С. Автор показывает, как перестать привязывать логику приложения к экранным формам и таблицам базы данных, выстроить четкие границы между слоями системы и защитить инварианты предметной области.
Вы научитесь формулировать бизнес-сценарии от действий пользователя до инфраструктурных адаптеров, проектировать агрегаты, формулировать единый язык предметной области и изолировать новые подсистемы от legacy-кода типовых решений.
Зачем используется Unity и C#
В платформе 1С архитектурные границы приходится удерживать исключительно соглашениями и дисциплиной команды. В Unity и C# правила Clean Architecture и DDD поддерживаются средой и компилятором физически: там наглядно видно разделение слоев, запрет неверных зависимостей, сборку объектного графа и изоляцию контекстов.
Работа с готовым учебным проектом на C# позволяет увидеть архитектурные паттерны на практике без необходимости разрабатывать игру с нуля. После этого изученные принципы переносятся в 1С с учетом возможностей и технических ограничений платформы.
Кому подойдёт
Материал ориентирован на разработчиков 1С, которые сталкиваются со следующими сложностями:
- проектирование начинается с экранных форм, кнопок или структуры регистров и документов вместо бизнес-сценариев;
- логика предметной области постепенно размывается по формам, объектам, обработчикам и общим модулям;
- изменение в одном месте непредсказуемо затрагивает несвязанные части конфигурации;
- в коде перемешаны разные зоны ответственности, но сложно определить, где именно провести границу;
- не удается выстроить архитектурные подходы в доработанной конфигурации и защитить решения перед коллегами на код-ревью.
Что внутри
Программа состоит из семи последовательных модулей и дополнительных практикумов. Вводная часть знакомит с готовым проектом на Unity и C#, организацией зависимостей, объектным графом и принципом Composition Root. Затем детально разбираются слои чистой архитектуры: Use Cases, Controller, Presenter, Input и Output Boundaries.
Следующий блок раскрывает основы DDD: сущности, объекты-значения, агрегаты, доменные сервисы и ограниченные контексты. В практической части для 1С рассматривается реализация портов и адаптеров, разделение доменной модели и модели хранения данных, а также использование модулей, подсистем и расширений для фиксации границ.
Итоговая работа отведена под самостоятельное проектирование и реализацию новой подсистемы в 1С с интеграцией в типовое решение. Дополнительно предоставляются разбор конфигурации JWT, практикум по быстрому написанию модульных тестов и уроки по разработке на Unity.
Об авторе
Евгений Шилов — практикующий архитектор и основатель Clean Games School, работает в сфере разработки на 1С с 2006 года. Преподавал в Skillbox, GeekBrains и Нетологии. Имеет опыт создания коммерческих игровых проектов на C# и, по собственным данным, обучил свыше 600 специалистов по 1С.
Программа обучения
- Подготовка к работе с учебным проектом Разберётесь в готовом проекте на Unity и C#, чтобы уверенно работать с учебными примерами и не отвлекаться на полноценное изучение нового стека. Научитесь находить нужные объекты и участки кода, запускать проект, вносить изменения и разбираться с базовыми ошибками. Что изучим: зачем часть архитектурных решений рассматривается на другом стеке; как открыть и запустить готовый проект; где находятся сцена, объекты, параметры и код; как найти нужный объект и связанный с ним компонент; как открыть C#-скрипт и внести простое изменение; как читать сообщения об ошибках и простой stack trace; как собрать готовое приложение. Ваш результат после модуля: У вас будет настроенный и проверенный учебный проект, готовый к дальнейшей работе. Вы сможете самостоятельно открыть нужную сцену и скрипт, найти связанный с объектом код, внести простое изменение, запустить приложение и понять причину базовой ошибки по сообщению и stack trace.
- Классы, зависимости и сборка приложения Научитесь видеть, от чего на самом деле зависит код, делать эти зависимости явными и управлять ими из одной точки. Сможете собирать приложение так, чтобы отдельные реализации можно было заменять без переписывания основной логики и появления скрытых связей. Что изучим: необходимый минимум C# для чтения кода; классы, объекты, методы, конструкторы и интерфейсы; явные и скрытые зависимости; создание, поиск и передача зависимостей; глобальный доступ и Service Locator; Dependency Injection без привязки к контейнеру; объектный граф и композиция объектов; Bootstrap и Composition Root; отличие сборки приложения от выполнения прикладного сценария. Ваш результат после модуля: У вас будет собран прозрачный объектный граф, в котором понятно, какие компоненты создаются, как они связаны и где выбираются их реализации. Вы вынесете сборку приложения в отдельную точку, отделите создание объектов от их работы и сможете заменять инфраструктурные детали, не затрагивая прикладной сценарий.
- Clean Architecture: от действия пользователя до результата Научитесь проектировать пользовательский сценарий целиком — от действия в интерфейсе до выполнения бизнес-логики, обращения к данным и отображения результата. Сможете разделять ответственность между UI, Application и Infrastructure так, чтобы форма и технические детали не управляли логикой приложения. Что изучим: акторы, их цели и пользовательские сценарии; отличие технического события от Use Case; UI, Application, Domain и Infrastructure; Controller, Request и Input Boundary; Use Case и исходящие порты; Gateway и инфраструктурные адаптеры; Output Boundary; Presenter, ViewModel и View; направление управления и направление зависимостей; полный стек вызовов от действия до результата. Ваш результат после модуля: У вас будет спроектирован полный стек вызовов для самостоятельного Use Case: Controller, Request, Input Boundary, прикладной сценарий, исходящие порты, инфраструктурные адаптеры, Presenter и ViewModel. Для каждого элемента вы определите его ответственность, входные и выходные данные, а также правильное направление управления и зависимостей.
- Domain и DDD: бизнес-правила внутри модели Научитесь находить настоящие бизнес-правила и отделять их от интерфейса, сценариев приложения и технических деталей. Сможете собирать доменную модель так, чтобы она не просто хранила данные, а сама защищала важные ограничения и не позволяла системе переходить в некорректное состояние. Что изучим: отличие Domain от UI, Application и Infrastructure; единый язык предметной области; Entity и идентичность; Value Objects, неизменяемость и инкапсуляция; бизнес-инварианты; Aggregate и Aggregate Root; граница согласованности; Repository; различия между Use Case, Application Service и доменной операцией; Domain Service; bounded context и локальный язык контекста; связь DDD и Clean Architecture. Ваш результат после модуля: У вас будет спроектирована доменная модель выбранного сценария: Entity, Value Objects, Aggregate, Aggregate Root и граница согласованности. Вы сформулируете бизнес-инварианты, определите, где должно находиться каждое правило, и разделите ответственность между Use Case, Domain Service и самой доменной моделью.
- Как сохранить архитектуру при росте системы Научитесь выстраивать архитектурные границы между модулями: контролировать допустимые зависимости, защищать внутренние части модулей и не допускать циклических связей. Сможете организовать взаимодействие между bounded contexts так, чтобы они не проникали во внутренние модели друг друга и были связаны через понятные контракты. Что изучим: Физическая защита архитектурных границ: отличие папки и логического слоя от физической границы; пространства имён, сборки и ссылки между ними; допустимый граф зависимостей; публичная и внутренняя поверхность модуля; обнаружение циклических связей; возможности и ограничения технической защиты архитектуры. Взаимодействие между bounded contexts: внутренняя модель и публичный API контекста; контракты взаимодействия; передача идентификаторов и значений вместо чужих агрегатов; Process Manager; межконтекстная координация; Ваш результат после модуля: У вас будет спроектирована схема взаимодействия частей системы: допустимый граф зависимостей, публичная и внутренняя поверхность модулей, а также контракты между bounded contexts. Вы сможете находить циклические связи, закрывать внутреннюю модель контекста, передавать между частями системы только необходимые данные и технически предотвращать часть архитектурных нарушений.
- Применение Clean Architecture и DDD в 1С Перенесёте изученные принципы в реальную разработку на 1С и разберётесь, как применять их с учётом возможностей и ограничений платформы. Научитесь сохранять архитектурный смысл, не пытаясь механически повторить структуру C#, и выбирать практичные способы организации границ, зависимостей и бизнес-логики. Что изучим: как перенести архитектурные решения в ограничения 1С; как защищать инварианты и использовать Value Objects; как реализовать интерфейсы, Ports и Adapters; чем приблизить Bootstrap и Composition Root; как обозначать границы через модули, подсистемы, расширения и префиксы; как разделять Domain Model и Persistence Model; как отделять форму от модели хранения; Ваш результат после модуля: У вас будет спроектирован практический вариант архитектуры для 1С: разделение формы, прикладного сценария, доменной логики и хранения данных, явная композиция зависимостей, Ports и Adapters, а также обозначенные границы модулей и подсистем. Вы поймёте, какие решения можно закрепить средствами платформы.
- Итоговая работа: полноценная подсистема в 1С Самостоятельно пройдёте весь путь проектирования и реализации новой подсистемы в 1С — от бизнес-задачи и пользовательских сценариев до рабочего кода и интеграции с типовым решением. Научитесь создавать новые части системы так, чтобы они сохраняли собственные архитектурные границы и не растворялись в legacy-коде существующей конфигурации. Что изучим: определите бизнес-задачу, акторов и ключевые Use Cases подсистемы; самостоятельно спроектируете её архитектуру; реализуете полный сценарий — от пользовательского действия до бизнес-логики и работы с данными; разделите ответственность между слоями и выстроите корректные зависимости; выделите Entity, Value Objects, Aggregates и бизнес-инварианты; организуете взаимодействие через Ports и Adapters; интегрируете новую подсистему с типовым решением, не связывая её напрямую с legacy-кодом; предусмотрите ограничения платформы 1С и способы их компенсации; проведёте взаимное код-ревью и разберёте архитектурные решения друг друга; Ваш результат после модуля: У вас будет полностью спроектированная и реализованная подсистема в 1С с реальной бизнес-логикой, выделенными Use Cases, слоями, зависимостями, Entity, Value Objects, агрегатами, Ports и Adapters. Вы интегрируете её с типовым решением, проведёте взаимное код-ревью, доработаете архитектуру по обратной связи и сможете обосновать каждое ключевое решение.
Теги курса
Другие материалы автора 2
ЕШ Евгений Шилов Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.