CI/CD для 1С - миф или реальность?
Еще одна статья Олега Филиппова на модную ныне тему: https://infostart.ru/public/857583/
Однозначно, у comol'а талант выбирать тему погорячее и преподносить ее провокационно.
Просто мысли/возражения, которые первыми прилетели в процессе чтения статьи:
1. Мержить XML/HTML не просто независимо от платформы, веб это или 1С, потому что это не просто текст, а логически организованная структура данных, для их слияния нужно использовать специализированные инструменты.
2. Мерж простых текстовых файлов (читай: кода) и для 1С и для любого другого ЯП одинаково "прост".
3. Если внимательно посмотреть на требования для контрибуторов в открытых проектах, то почти всегда встречается два интересных шага:
- перед реализацией своей фичи нужно сделать форк от конкретной, актуальной ветки (обычно devel или master)
- перед созданием PR требуют синхронизировать upstream с origin
Это все и делается, чтобы мерж был простым. Если и с кодом 1С так поступать, то мерж тоже будет простой.
Вот первая попавшаяся подобная инструкция про стандартный процесс PR для Github'а. В RMS до сих пор используется древняя как дерьмо мамонта CVS и там точно такие же требования (разработку вести на актуальной версии конфигурации, перед коммитом обязательно актуализировать) и нормально исходники 1С поживают.
4. В вебе результат параллельной работы бэкенд и фронтэнд программиста относительно легко объединять, потому что изменения, которые они вносят, обычно касаются совершенно разных файлов. Это действительно случай "простого мержа".
В 1С тут, признаться, есть архитектурная багофича, ломающая идею "простого мержа": даже в случае параллельного изменния совершенно независимых участков конфигурации есть файлы, которые изменятся всегда и независимо от редактируемого участка, и конфликт будет гарантирован, если не добавить этот файл в игнор.
5. Тема мержа пронизывает всю статью, выставлена краеугольной проблемой CI/CD для 1С, но по сути не раскрыта никак, а только создаст у неискушенного в теме 1Сника домыслы и новые мифы.
#1С
Post #159
521