Я не уверен, что лучший способ описать это - я сделал какой-то поиск в Google, но на avail.Зависимость Github для файла решения
я в настоящее время есть решение, которое имеет следующее:
Repository 1 ProductProject1 ProductProject2 ProductProject3 SharedCodeProject1 SharedCodeProject2
Проблема у меня в настоящее время является то, что если разработчик хочет работать на ProductProject1 они должны клонировать весь репозиторий, который дает им ProductProject1, 2 и 3.
Это прекрасно работало, однако до недавнего времени, когда я нанимаю больше разработчиков, я действительно хочу, чтобы они сосредоточились исключительно на одном из трех проектов продуктов и специализировались на этом.
Мне любопытно, как другие управляют этим типом ситуации? Просто разрешите разработчикам клонировать весь репозиторий так, как я был?
Мой Предложенное решение было ...
Возможное решение 1
установки отдельных репозиториев так:
Repository1 ProductProject1 SharedCodeProject1 SharedCodeProject2
Repository2 ProductProject2 SharedCodeProject1 SharedCodeProject2
Repository3 ProductProject3 SharedCodeProject1 SharedCodeProject2
Pro: Код компактнее и только обнажает Дев к ProductProject они несут ответственность за
Con: Подумав это до конца, я понял, что SharedCodeProject1
и SharedCodeProject2
будут в основном смешались версии через каждый репозиторий , когда на самом деле они должны и могут просто оставаться одинаковыми во всех.
Возможное решение 2
установки отдельных репозиториев так:
Repository1 ProductProject1
Repository2 ProductProject2
Repository3 ProductProject3
Repository4 SharedCodeProject1 SharedCodeProject2
Плюсы: Честно говоря, я даже не уверен, возможна ли эта структура, так как в репозиториях 1 - 3 будет тонна неработающих ссылок (если нет каких-то магических установок, о которых я не знаю) теоретически бонус заключается в том, что SharedCodeProject1 и 2 централизованы, поэтому любой разработчик, который обновляет все разработчики, получает и может повторно использовать эти обновления (в частности, для уровня БД, который является одним из совместно используемого проекта и бизнес-логики, который находится в другом проекте общего кода)
Минусы: ломая изменения не реализованы не будут действительно быть реализованы во всех хранилищах до синхронизации (это имеет смысл)
Мне очень сложно найти лучший способ сделать любую из этих работ. Надеюсь, это имеет смысл, пожалуйста, дайте мне знать, если я смогу прояснить ситуацию.
Мне просто интересно, как другие компании строят большие решения на github, как это, пытаясь ограничить доступ к разработчикам только для конкретных проектов.
Спасибо большое!
Единственная проблема, которую я вижу, заключается в том, что общий код изменяется каждый день каждый проект. Похоже, было бы очень громоздким управлять этим целым процессом отдельно. – 99823
Это похоже на то, что вам нужно, чтобы получить ручку. У вас проблема с тесной связью, которая считается анти-шаблоном. Вы должны продвигать свободную связь ... –
Я не уверен, как это сделать ... у нас есть проект для нашей БД и проект для наших услуг, эти два проекта используются повторно в наших продуктах. Его довольно распространено для тех, кто работает над продуктом, чтобы добавить функциональные возможности сервиса для этого продукта в проект службы. Как иначе это обычно делается? Я думал, что это будет считаться лучшей практикой. – 99823