Как избежать проблемы зависимости, когда весь проект разделен на разные модули - PullRequest
0 голосов
/ 06 августа 2020

Данный проект разделен на 3 модуля A, B и C. Эти три модуля разрабатываются тремя командами и в разных репозиториях. Более того, A, B и C зависят друг от друга. Вначале все работает хорошо. Каждая команда может импортировать зависимость из другой команды и настроить зависимость в каком-либо файле. Однако предположим, что модулю A по какой-то причине рефакторинга необходимо настроить классы. Корректировка может просто изменить ссылку на зависимость для некоторых классов (например, переместить класс из «a-folder-1» в «a-folder-2»). Когда код PU sh, тесты не завершатся ошибкой, потому что для репо A нет ничего плохого. Однако, когда код B или C pu sh, они столкнутся с проблемой зависимости, потому что они все еще используют старый способ импорта классов в A, который был реорганизован. Решение довольно простое, B и C просто нужно настроить файл конфигурации зависимостей, чтобы должным образом импортировать классы из A.

Мой вопрос: есть ли какая-либо структура или инструмент, который нам поможет? чтобы избежать такого рода проблем? На данный момент каждый раз, когда кто-то меняет зависимость, другие могут настраивать только свою собственную конфигурацию зависимости. Это просто, когда проект небольшой, но когда много команд, это создает проблемы. Потому что каждый раз, когда кто-то хочет создать sh новый код, он может столкнуться с проблемой зависимости.

1 Ответ

0 голосов
/ 06 августа 2020

Это действительно непростой инструмент, который можно использовать. Единственное решение - хорошее планирование.

Единственный способ решить подобные проблемы с зависимостями - иметь полный API (список классов, свойств, методов) до проекта запущен. Это требует планирования , и именно поэтому так важно понимать архитектуру и дизайн программного обеспечения.

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

Вы можете проверить semver , это в основном систематический c способ управления версиями. Это может помочь вам сообщать об изменениях, особенно различая критические и неразрывные изменения.

...