Pracuję na dość dużej podstawie kodu. Setki klas, mnóstwo różnych plików, wiele funkcji, potrzeba więcej niż 15 minut, aby pobrać nową kopię itp.
Dużym problemem związanym z tak dużą bazą kodu jest to, że ma całkiem sporo metod narzędziowych i takich, które robią to samo, lub kod, który nie używa tych metod narzędziowych, kiedy może. A także metody użytkowe nie są tylko jedną klasą (ponieważ byłby to ogromny pomieszany bałagan).
Jestem raczej nowy w bazie kodu, ale lider zespołu, który pracował nad nim od lat, wydaje się mieć ten sam problem. Prowadzi to do dużej ilości kodu i powielania pracy, i jako takie, gdy coś się psuje, zwykle jest dzielone na 4 kopie zasadniczo tego samego kodu
Jak możemy ograniczyć ten wzór? Podobnie jak w przypadku większości dużych projektów, nie cały kod jest udokumentowany (choć niektóre są) i nie cały kod jest ... cóż, czysty. Ale w gruncie rzeczy byłoby naprawdę miło, gdybyśmy mogli popracować nad poprawą jakości pod tym względem, aby w przyszłości mieliśmy mniej powielania kodu, a takie funkcje, jak funkcje użytkowe były łatwiejsze do wykrycia.
Ponadto funkcje narzędziowe są zwykle albo w statycznej klasie pomocniczej, w innej niestatycznej klasie pomocniczej, która działa na jednym obiekcie, lub jest statyczną metodą w klasie, z którą głównie „pomaga”.
Miałem jeden eksperyment z dodawaniem funkcji narzędziowych jako metod rozszerzenia (nie potrzebowałem żadnych elementów wewnętrznych klasy, a na pewno było to wymagane tylko w bardzo specyficznych scenariuszach). Skutkowało to zapobieganiem zaśmiecaniu klasy podstawowej i tym podobnych, ale tak naprawdę nie jest już możliwe do odkrycia, chyba że już o tym wiesz