Szukałem odpowiedzi w SO lub tutaj, ale bez rezultatów, dlatego o to zapytam.
Załóżmy, że mam dwa różne projekty - na przykład część serwera i część klienta aplikacji. Rozwijam swoją część, podczas gdy mój przyjaciel tworzy drugą. Ale oboje powinniśmy korzystać z niektórych popularnych interfejsów, takich jak User
lub AccountInfo
lub ChangableAccount
... w celu zapewnienia zgodności. Na przykład, jeśli klienci wysyłają dane użytkownika do serwera, serwer powinien działać na tej samej klasie. To samo dotyczy interfejsów itp. Ponadto, jeśli wystąpią jakiekolwiek zmiany we wspólnym interfejsie, oba projekty powinny dostosować swój kod do nowej sytuacji.
Jedyne rozwiązanie, jakie widzę teraz, to stworzenie jednego dodatkowego projektu, w którym zdefiniowane są wszystkie typowe rzeczy. My, ja i mój przyjaciel, powinniśmy dodać ten projekt jako zależność do głównego projektu (klienta lub serwera). Projektem współdzielonym może zarządzać jakiś system kontroli wersji, więc zawsze mamy najbardziej aktualny stan.
Jakie inne rozwiązanie zaproponowałbyś? Jak takie problemy są rozwiązywane w profesjonalnych aplikacjach?