Jestem obecnie w projekcie, który rozwija się za pomocą ramy opracowanej przez inny dział jako bazę. Obecnie wprowadzamy standardy jakości (na koniec, yay!) W naszym dziale, ale obecnie nie jest możliwe wprowadzenie ich do innego działu. W konsekwencji pracujemy przeciwko ruchomemu celowi bez stabilności API lub stabilnych wydań, co jest stresujące.Jak mogę zarządzać zależnościami modułu Perla?
Ponieważ staramy się naprawiać rzeczy na samym końcu, chcielibyśmy zabezpieczyć się aż do zmian w kodzie źródłowym "upstream" a.k.a. Wyobraziliśmy sobie trudne zależności modułów:
- Używanie tylko niektórych zakresów wersji modułów ramowych, zdefiniowanych w kodzie.
- Przy użyciu testu testu jednostkowego, aby upewnić się, że wszystkie niezbędne wersje są nadal dostępne.
- Każde rozszerzenie zakresu wersji wymagające recenzowania kodu frameworka.
Taki jest plan. Teraz pytania:
- Czy to rozsądne? Jeśli nie, jakieś inne pomysły?
- Jak można to zaimplementować w perlu? Używając
use Module
, możemy zdefiniować tylko ten kod, z którym ma działać.
CPAN jest niestabilny w tym sensie, że nie można nikogo powstrzymać od robienia czegokolwiek. Konkretny moduł może być całkowicie wolny od błędów, ale nawet zmiana interfejsu może spowodować złamanie kodu, który na nim polega. Wielkim winowajcą jest projekt mechanizmu narzędziowego CPAN, w którym najnowsza wersja jest tą, którą próbują zainstalować klienci. –