Командная разработка в 1С. Введение

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

Итак, основные компоненты современной системы командной разработки схематично можно изобразить следующим образом:

Все участники процесса работают в системе, которая обеспечивает следующие функции:

  1. Система регистрации запросов.
  2. Хранилище кода, которая должна поддерживать:
    1. Ветвление кода (операции Merge/Branch),
    2. Возможность связать каждое изменение в коде с задачей,
    3. Историю всех изменений,
    4. Желательно функцию Annotate (возможность посмотреть какие части кода в рамках каких задач менялись).
  3. Анализ кода:
    1. Автоматический анализ соответствия кода установленным правилам,
    2. Возможность внедрения процедуры Code Review,
  4. Тестирование:
    1. Автоматизированное тестирование блоков системы (unit tests)
    2. Автоматизированное нагрузочное тестирование (load tests)
  5. Build Machine – автоматизированный процесс переноса необходимых изменений на тестовую/рабочую среды.
  6. Система отчетов, которая объединяет все перечисленные выше элементы для предоставления необходимых отчетов всем участникам процесса. Предпочтительно использование платформы Business Intelligence для данного блока.

Что же мы имеем в 1С, если используем стандартный функционал? Честно говоря, картина достаточно удручающая, так как большинство инструментов физически не реализовано:

Система разработки 1С предназначена только для разработчика, при этом те инструменты, которые существуют, имеют следующие недостатки:

  1. Нет системы для хранения изменений внешних обработок.
  2. Вопросы к хранилищу конфигурации:
    1. Имеет ограничение на число версий, которые можно хранить,
    2. История изменений работает недопустимо медленно, чтобы быть часто используемым инструментом,
    3. Функции Annotate нет,
    4. Функций ветвления нет, что фактически ставит крест не релизной схеме работы и существенно увеличивает риски переноса некорректных или непротестированных изменений в рабочую среду.
  3. Каждому разработчику требуется своя отдельная база данных, что, в случае, если рабочая база достаточно большая может привести к проблемам с местом на сервере для большой команды.

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

Добавить комментарий

Ваш адрес email не будет опубликован.