Syllogizm:
Generalność jest droga.
Wydajesz pieniądze innych ludzi.
Dlatego koszt ogólności musi być uzasadniony dla zainteresowanych stron.
Zadaj sobie pytanie, czy naprawdę rozwiązujesz bardziej ogólny problem, aby później zaoszczędzić pieniądze interesariuszy, czy może po prostu uważasz, że podjęcie niepotrzebnie ogólnego rozwiązania stanowi wyzwanie intelektualne.
Jeśli ogólność zostanie uznana za pożądaną , należy ją zaprojektować i przetestować jak każdą inną cechę . Jeśli nie możesz napisać testów, które pokazują, w jaki sposób ogólność, którą zaimplementowałeś, rozwiązuje problem wymagany przez specyfikację, nie zawracaj sobie tym głowy! Funkcja, która nie spełnia żadnych kryteriów projektowych i nie może być przetestowana, jest funkcją, na której nikt nie może polegać.
I na koniec, nie ma czegoś takiego jak „tak ogólne, jak to możliwe”. Załóżmy, że piszesz oprogramowanie w języku C #, tylko ze względu na argument. Czy chcesz, aby każda klasa implementowała interfejs? Każda klasa abstrakcyjna klasa bazowa z każdą metodą abstrakcyjną metodą? To dość ogólne, ale nie jest to wcale „tak ogólne, jak to możliwe”. To pozwala ludziom zmieniać implementację dowolnej metody poprzez podklasowanie. Co jeśli chcą zmienić implementację metody bez podklasy? Możesz uczynić każdą metodę faktycznie właściwością typu delegowanego, z ustawiaczem, aby ludzie mogli zmienić każdą metodę na coś innego. Ale co, jeśli ktoś chce dodać więcej metod? Teraz każdy obiekt musi być rozszerzalny.
W tym momencie powinieneś porzucić C # i włączyć JavaScript. Ale wciąż nie jesteś wystarczająco ogólny; co jeśli ktoś chce zmienić sposób, w jaki działa wyszukiwanie członków dla tego konkretnego obiektu? Może zamiast tego powinieneś napisać wszystko w Pythonie.
Rosnąca ogólność często oznacza porzucenie przewidywalności i masywne zwiększenie kosztów testowania, aby zapewnić, że zaimplementowana ogólność rzeczywiście spełni rzeczywiste potrzeby użytkowników . Czy koszty te są uzasadnione korzyściami dla interesariuszy, którzy za nie płacą? Być może są; to do ciebie należy rozmowa z interesariuszami. Moi interesariusze wcale nie są skłonni do porzucenia pisania statycznego w celu uzyskania całkowicie niepotrzebnego i niezwykle kosztownego poziomu ogólności, ale być może są twoje.