Niedawno zacząłem pracować dla nowego klienta ze starą bazą kodu, w której istnieje wiele rozwiązań .net, z których każdy zazwyczaj obsługuje niektóre projekty unikalne dla tego rozwiązania, ale potem „pożycza” / „łączy” (dodaj istniejący projekt) kilka innych projektów który technicznie należy do innych rozwiązań (przynajmniej jeśli chodzi o strukturę folderów w TFS)
Nigdy nie widziałem tak splecionej konfiguracji, nie ma jasnej kolejności kompilacji, czasami projekt w rozwiązaniu A po prostu odwołuje się do bibliotek dll bezpośrednio z katalogu wyjściowego projektu hostowanego w rozwiązaniu B, czasami projekt został właśnie dołączony bezpośrednio, nawet jeśli rezyduje DALEKO w strukturze folderów.
Wygląda na to, że wszystko zostało zoptymalizowane pod kątem lenistwa programistów.
Kiedy stanąłem przed nimi z pytaniem, dlaczego nie mają serwera CI, odpowiedzieli, że trudno jest skonfigurować kod w takiej formie. (Teraz konfiguruję i przeklinam tę organizację kodu)
Rozwiązania są zorganizowane wokół artefaktów wdrażania (rzeczy, które muszą zostać wdrożone razem, są w tym samym rozwiązaniu), co moim zdaniem jest mądrą decyzją, ale zawartość tych rozwiązań (projektów) jest wszędzie.
Czy istnieje zgoda co do najlepszych praktyk, które należy zastosować przy ponownym użyciu bibliotek klas wspólnych w wielu rozwiązaniach / artefaktach wdrażania,
- Jak ustrukturyzować kod w VCS
- Jak ułatwić współużytkowanie logiki biznesowej między oddzielnymi artefaktami wdrażania