Нещодавно я почав працювати над новим клієнтом зі старою застарілою базою кодів, в якій є безліч .net-рішень, кожен зазвичай розміщує деякі проекти, унікальні для цього рішення, але потім "запозичує" / "посилається" (додайте існуючий проект) деякі інші проекти який технічно належить до інших рішень (принаймні, якщо ви переходите до структури папок у TFS)
Я ніколи не бачив налаштування цього переплетеного, немає чіткого порядку складання, іноді проект у рішенні. Просто посилання знаходиться безпосередньо в вихідному каталозі проекту, розміщеного в рішенні B, іноді проект просто включений безпосередньо, навіть якщо він знаходиться Далі в структурі папок.
Схоже, все оптимізовано для лінь розробників.
Коли я зіштовхнувся з ними, чому у них не було сервера CI, вони відповіли, що важко налаштуватись з таким кодом, організованим як він є. (Я налаштовую це зараз і проклинаю цю організацію коду)
Рішення організовані навколо артефактів розгортання (речі, які потрібно розгорнути разом, знаходяться в одному і тому ж рішенні), що, на мою думку, є розумним рішенням, але зміст цих рішень (проектів) є всюди.
Чи існує консенсус щодо найкращої практики, яку слід використовувати при повторному використанні бібліотек загального класу для численних артефактів рішень / розгортання,
- Як структурувати код у VCS
- Як полегшити обмін діловою логікою між окремими артефактами розгортання