Модульность в 1С – как следовать принципам DRY в реалиях 1С: Предприятие 8.3

0. 281 03.06.22 11:22 Сейчас в теме
Принцип DRY – Don't repeat yourself (не повторяйся) – один из классических принципов программирования. Краеугольным камнем реализации этого принципа является модульная архитектура, которую можно реализовать в 1С с помощью расширений. Но экосистемы модулей общего назначения, сравнимой с существующими в других языках, в 1С пока что нет. О том, как спроектировать архитектуру таких модулей и управлять ими с помощью менеджера пакетов, на митапе «Путь к идеальному коду» рассказал технический директор компании «А1» Арсений Геращенко.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. NeLenin 8 04.06.22 01:04 Сейчас в теме
Действительно, компоненты формы можно создавать динамически. А подвесить на события компонентов свои обработчики - никак. Здесь мне видится архитектурная недоработка платформы 1С.
2. kalyaka 824 06.06.22 09:29 Сейчас в теме
пакетов в 1С пока не существует
Может уже пора написать? :)

Я вижу реализацию идеи менеджера пакетов в там виде: в проекте создается файл описания зависимостей с прямыми ссылками на git репозитарии. Для сборки cf запускается скрипт на 1Script, который скачивает из соответствующих реп заданную версию сборки (файлы cf), затем мержит их в один cf вместе со сборкой текущего проекта.

При этом все проекты разрабатываются в формете расширений. При сборке они преобразуются в cf, чтобы затем сделать общий мерж.
3. kalyaka 824 06.06.22 15:07 Сейчас в теме
Использование префиксов неудобно тем, что они "засоряют" код.

Представьте себе конфигурацию, в которой модули, написанные разными разработчиками будут с разными префиксами. Тогда при написании кода недостаточно будет помнить имя модуля, придется еще вспоминать его префикс. И если имя должно соответствовать смыслу функциональности, то префиск никакой полезной смысловой нагрузки не несет.

С другой стороны для разделения функциональности на уровне пакетов, как это устроено в других языках, использование префиксов - вариант для разработки на 1С с аналогичным разделением.

Тут я думаю, можно было бы написать линковщик на том же 1Script, который бы при сборке умел заменять имена модулей в одном проекте на новые с префиксом. Внутренние ссылки тоже нужно будет менять как при рефакторинге. Метаданные помимо общих модулей можно оставить без рефакторинга. Для метаданных как данных вполне можно придумать адекватное уникальное имя и без префиксов, а если так не получается, то значит вероятно требуется пересмотреть модель данных.
o.nikolaev; +1 Ответить
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Архитектор 1С
Москва
зарплата от 260 000 руб.
Полный день

Начальник отдела архитектуры
Москва
зарплата от 300 000 руб.
Полный день

Эксперт по технологическим вопросам
Москва
зарплата от 250 000 руб.
Полный день

Ведущий разработчик 1С
Ростов-на-Дону
зарплата от 200 000 руб.
Полный день