Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Юрий Гуреев – 5 продвинутых приемов работы с EDT и Git

Ozon Tech
October 16, 2023

Юрий Гуреев – 5 продвинутых приемов работы с EDT и Git

Ozon Tech

October 16, 2023
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Ozon Tech 2023 5 продвинутых приемов работы с EDT и

    GIT Юрий Гуреев, старший разработчик 1С в Ozon Fresh, группа разработки 1С «Библиотеки и сервисы»
  2. EDT и GIT 1. Чем EDT лучше конфигуратора, и почему

    мы в нем разрабатываем • Коротко о главном 2. Работа с конфигурацией поставщика и обновление в два клика • Типовые и не только 3. Решение конфликтов, или не EDT единым • Про другие инструменты разработчика 4. Создание собственной распространяемой библиотеки • Как писать и распространять 5. Один CI для всех конфигураций • CI/CD для 1С 2 1+1=3
  3. …и почему мы в нем разрабатываем. Наш опыт Чем EDT

    лучше конфигуратора… 4 Наша команда разрабатывает в EDT уже больше двух лет. Основная конфигурация – ERP (плюс Общепит, Контур EDI) 1. Мы используем GitLab, CI/CD написан на OneScript, автоматизированное тестирование Vanessa 2. Своя библиотека стандартных подсистем – Бозон 3. Разрабатываем на стационарных компьютерах (Core i7 8 ядер, 64gb ram, 1Tb SSD m2) 4.
  4. …и почему мы в нем разрабатываем. Нативная интеграция с GIT

    Чем EDT лучше конфигуратора… Групповая разработка Структура репозитория История 5
  5. …и почему мы в нем разрабатываем. Нативная интеграция с GIT

    Чем EDT лучше конфигуратора… Создание ветки 6
  6. …и почему мы в нем разрабатываем. Контекстная подсказка (IntelliSense) Чем

    EDT лучше конфигуратора… Контекстная подсказка Ctrl+Space 7
  7. …и почему мы в нем разрабатываем. Контекстная подсказка (IntelliSense) Чем

    EDT лучше конфигуратора… Контекстная подсказка Ctrl+Space 8
  8. …и почему мы в нем разрабатываем. Типизация и проверка на

    ошибки Чем EDT лучше конфигуратора… 9 Документирующий комментарий Подсветка ошибок Список ошибок
  9. Типизация и проверка на ошибки Работа с конфигурацией поставщика и

    обновление в два клика Настройка проверки на ошибки 10
  10. Схема взаимодействия веток update Работа с конфигурацией поставщика и обновление

    в два клика 12 develop vendor version1 merge commit update vendor version2 merge commit
  11. Порядок использования Работа с конфигурацией поставщика и обновление в два

    клика Создание ветки вендора git checkout --orphan <branchname> 1 Создаем коммит версии конфигурации поставщика Фактически это обычные изменения конфигурации 3 Вливаем update-ветку в наш проект Главное - не использовать rebase 5 Конфигурацию загружаем из информационной базы Если это типовая, предварительно снимаем с поддержки 2 Создаем update-ветку от нашего проекта и вливаем в нее ветку вендора Обычная процедура слияния веток 4
  12. Как быть и что делать Решение конфликтов, или не EDT

    единым 15 1. Конфликты возникают при слиянии веток, когда один и тот же код был параллельно изменен разными разработчиками 2. В 95% случаев для решения конфликта достаточно только EDT 3. Но иногда приходится прибегать к другим инструментам, например, VS Code
  13. Как быть и что делать Решение конфликтов, или не EDT

    единым 16 Окно сравнения и объединения с конфликтом
  14. Когда может пригодиться Создание собственной распространяемой библиотеки 20 • Когда

    множество проектов, и нужна переносимость кода • Снижение сложности поддержки кодовой базы
  15. Когда может пригодиться Создание собственной распространяемой библиотеки 21 • Когда

    множество проектов, и нужна переносимость кода • Снижение сложности поддержки кодовой базы • Скорость развертывания новых проектов
  16. Когда может пригодиться Создание собственной распространяемой библиотеки 22 • Когда

    множество проектов, и нужна переносимость кода • Снижение сложности поддержки кодовой базы • Скорость развертывания новых проектов • Доработка общих механизмов разработчиками, задействованными на разных проектах
  17. Сборка независимого проекта Создание собственной распространяемой библиотеки Создали отдельный проект

    для библиотеки Независимый проект в GitLab 1 Создали скрипты сборки EDT-проекта библиотеки из мастер-проекта Скрипты написаны на OneScript, анализ кода конфигурации и кодогенерация 2 Создали скрипты обновления vendor-ветки для любых проектов Встроили в наш CI, достаточно прописать импорт gitlab-ci.yml и заполнить переменные 3 24
  18. Структура нашего CI (continuous integration) Один CI для всех конфигураций

    26 • Наш CI состоит непосредственно из файла gitlab-ci.yml и набора скриптов, написанных на OneScript
  19. Структура нашего CI (continuous integration) Один CI для всех конфигураций

    27 • Наш CI состоит непосредственно из файла gitlab-ci.yml и набора скриптов, написанных на OneScript • Это отдельный репозиторий в GitLab, разработка ведется в VS Code
  20. Структура нашего CI (continuous integration) Один CI для всех конфигураций

    28 • Наш CI состоит непосредственно из файла gitlab-ci.yml и набора скриптов, написанных на OneScript • Это отдельный репозиторий в GitLab, разработка ведется в VS Code • Все возможные отличия между проектами вынесены в переменные и являются настраиваемыми
  21. Структура нашего CI (continuous integration) Один CI для всех конфигураций

    29 • Наш CI состоит непосредственно из файла gitlab-ci.yml и набора скриптов, написанных на OneScript • Это отдельный репозиторий в GitLab, разработка ведется в VS Code • Все возможные отличия между проектами вынесены в переменные и являются настраиваемыми • Используются групповые раннеры GitLab
  22. Настройки Один CI для всех конфигураций 31 Переменная BOZON_CI_TOKEN •

    Access Token Gitlab, scope – read_api Переменная BOZON_CI_BRANCH • Имя ветки, из которой будет подгружаться CI
  23. Спасибо за внимание Юрий Гуреев, старший разработчик 1С в Ozon

    Fresh, группа разработки 1С «Библиотеки и сервисы»