Три страшных греха 1С разработки
Три страшных греха 1С разработки.
Последний поток курс по архитектуре вышел на финишную прямую. Дозаписываю видео по применению чистой архитектуры, DDD, сервисно-ориентированной архитектуры и Event-Driven подхода в 1С.
Наконец-то сформулировал три самых страшных греха в 1С-сфере, из-за которых архитектура 1С приложений получается не очень хорошая. Этому способствует сама платформа и те парадигмы, которые заложили в 2000-х годах.
Данные парадигмы подходят для CRUD-ориентированных приложений, в которых пользователь преимущественно создает, читает, изменяет и удаляет данные. Но когда у нас появляются сложные бизнес-процессы, разные зоны ответственности и множество бизнес-правил, то такой подход начинает создавать проблемы. Особенно это заметно в ERP-системах, когда мы строим всю бизнес-логику вокруг объектов метаданных, их записи и проведения.
Итак, три самых страшных греха 1С-разработки:
1. Использование ссылок для взаимодействия между контекстами. Контексты/сервисы/модули должны обмениваться идентификаторами и необходимыми данными, а не обращаться к чужим данным через ссылки. Иначе получаем связанность через общую базу данных
2.Привязка бизнес-логики к жизненному циклу объектов. Те самые «ПередЗаписью», «ОбработкаПроведения» и прочие события, в которые мы привыкли помещать бизнес-логику
3. Использование основного реквизита формы как основы бизнес-сценария. Это идет бок о бок с жизненным циклом объектов, их записью, проведением и прочими коллбэками платформы
Если отказаться от этих трех подходов и писать код, который на них не полагается, то мы сможем добиться гораздо лучшей модульности. Сможем развивать приложение и отдельные его модули независимо друг от друга.
И будет нам всем счастье. Архитектурное счастье.
А пока можете в комментариях написать, почему я неправ, и назвать меня еретиком.
В следующих постах подробнее раскрою свою точку зрения на конкретных примерах.