TL;DR
Wspólny komponent DataTable obsługiwał trzy listy: faktury, płatności i wypłaty. Po dziesięciu iteracjach miał 19 opcjonalnych propsów i warunki szyte pod konkretne ekrany, a w końcu dostał nawet wariant payouts. Komponent znał nazwy własnych konsumentów, czyli przestał być abstrakcją, a został zbiorem wyjątków.
Autorka pokazuje, jak z tego wyjść bez wielkiego przepisywania. Kopiuje komponent do trzech osobnych plików, wycina z każdej kopii to, czego ekran nie używa, i dopiero wtedy sprawdza, co naprawdę jest wspólne. Z tego wychodzą trzy tabele domenowe po 45 do 50 linii oraz kilka małych klocków, takich jak THead, TRow czy TotalRow. Jeśli kiedyś broniłeś się przed duplikacją kodu za wszelką cenę, ten tekst da ci do myślenia.
Wspólny komponent tabeli rośnie o kolejne propsy, aż zaczyna sprawdzać, gdzie jest używany. Jak go rozłożyć i co naprawdę było wspólne.
Czytaj cały wpis u źródła