Baza kodów, z którą codziennie pracuję, nie ma zautomatyzowanych testów, niespójnych nazw i mnóstwa komentarzy, takich jak „Dlaczego to jest tutaj?”, „Nie jestem pewien, czy jest to potrzebne” lub „Ta metoda nie jest odpowiednio nazwana”, a kod jest zaśmiecony „Listy zmian”, mimo że korzystamy z kontroli źródła. Wystarczy powiedzieć, że …
Przeczytałem kilka odpowiedzi na pytania o podobnej treści, na przykład „Jak utrzymać testy jednostkowe podczas refaktoryzacji?”. W moim przypadku scenariusz jest nieco inny, ponieważ otrzymałem projekt do przeglądu i dostosowania go do niektórych standardów, które obecnie posiadamy, obecnie nie ma żadnych testów dla tego projektu! Zidentyfikowałem szereg rzeczy, które moim …
Jestem wielkim zwolennikiem zasady skautów : Zawsze sprawdzaj moduł w czystszym stanie niż wtedy, gdy go sprawdziłeś. ”Bez względu na to, kto był oryginalnym autorem, co, jeśli zawsze podejmiemy jakiś wysiłek, nie ważne jak mały, aby ulepszyć moduł. Jaki byłby wynik? Myślę, że gdybyśmy wszyscy postępowali zgodnie z tą prostą …
To pytanie na temat SO mówi o poprawieniu tego, co według OP jest kodem zazdrości funkcji . Innym przykładem, w którym widziałem cytowanie tej fajnej frazy, jest ostatnio udzielona odpowiedź tutaj w programmers.SE. Chociaż dodałem komentarz do tej odpowiedzi, prosząc o informacje, które - jak sądzę - byłyby przydatne dla …
Mam projekt. W tym projekcie chciałem przefaktoryzować go, aby dodać funkcję, i przebudowałem projekt, aby dodać funkcję. Problem polega na tym, że kiedy skończyłem, okazało się, że muszę wprowadzić niewielką zmianę interfejsu, aby to uwzględnić. Więc dokonałem zmiany. I wtedy klasa konsumująca nie może zostać zaimplementowana z obecnym interfejsem pod …
Czasami (rzadko) wydaje się, że najlepszym rozwiązaniem jest utworzenie funkcji, która wymaga przyzwoitej liczby parametrów. Jednak kiedy to robię, czuję, że często losowo wybieram porządkowanie parametrów. Zazwyczaj stosuję „porządek ważności”, z najważniejszym parametrem na początku. Czy jest na to lepszy sposób? Czy istnieje sposób „porządkowania” najlepszych praktyk, który poprawia przejrzystość?
Jak zabierasz się za wyjaśnianie refaktoryzacji (i zadłużenia technicznego) osobie nietechnicznej (zwykle PHB lub klientowi)? („Co, będzie kosztowało mnie miesiąc twojej pracy bez widocznej różnicy ?!”) AKTUALIZACJA Dzięki za wszystkie dotychczasowe odpowiedzi, myślę, że ta lista dostarczy kilku przydatnych analogii, na które możemy wskazać odpowiednie osoby (choć edytowanie odniesień do …
Dawno temu dodaliśmy funkcję, w której nasi użytkownicy mogli „zaakceptować” obraz po dodaniu go do kolejki przepływu pracy. Okazuje się, że użyliśmy niewłaściwego terminu, a użytkownicy faktycznie „Zatwierdzili” obraz. Zmiana Akceptuj, aby zatwierdzić w naszym interfejsie jest łatwa, wystarczy zastąpić jedno słowo. Ale zaprogramowaliśmy wszystkie warstwy słowem „akceptuj”, od nazwy …
Pracuję z bazą kodu, która ma ponad 500 000 linii kodu. Poważnie potrzebuje refaktoryzacji. Zidentyfikowano wysiłki refaktoryzacyjne, które potrwają dłużej niż normalny dwutygodniowy sprint. Nie można ich podzielić na mniejsze zadania, jak sugerowałem w innych odpowiedziach na tej stronie. Produkt musi działać pod koniec iteracji, a częściowe refaktoryzacja pozostawi system …
Za każdym razem, gdy pracuję z kodem GUI, kod puchnie szybciej niż inne rodzaje kodu. Refaktoryzacja wydaje się również trudniejsza. Podczas gdy w innych rodzajach kodu mogę dość łatwo refaktoryzować - odkrywam, że mogę rozłożyć większą klasę na mniejsze części funkcjonalności - z większością struktur GUI często jestem związany ze …
Jak w wiarygodny sposób oszacować lub zmierzyć korzyści wynikające z refaktoryzacji kodu w starym, dużym projekcie z zadłużeniem technicznym? Załóżmy na przykład, że masz niektóre komponenty w stosie oprogramowania napisane w starszym języku, a niektóre późniejsze komponenty w nowszym języku. Zespół programistów stale dodaje do tego rozwiązania nowe funkcje i …
Muszę rozszerzyć istniejący moduł projektu. Nie podoba mi się sposób, w jaki to zostało zrobione (dużo anty-wzorca, takiego jak kopiowanie / wklejanie kodu). Nie chcę wykonać pełnego refaktora z wielu powodów. Czy powinienem: tworzyć nowe metody przy użyciu istniejącej konwencji, nawet jeśli uważam, że to źle, aby uniknąć zamieszania dla …
Zarządzam małym zespołem programistów. Co jakiś czas decydujemy, że spędzimy dzień lub dwa, aby wyczyścić nasz kod. Czy dobrym pomysłem byłoby zaplanowanie regularnego czasu, powiedzmy 1 tydzień co 2 miesiące, na samo oczyszczenie naszej bazy kodów?
Obecnie pracuję nad większym projektem, który niestety zawiera niektóre pliki, w których wytyczne dotyczące jakości oprogramowania nie zawsze były przestrzegane. Obejmuje to duże pliki (odczytaj 2000-4000 wierszy), które wyraźnie zawierają wiele różnych funkcji. Teraz chcę przekształcić te duże pliki w wiele małych. Problem polega na tym, że ponieważ są tak …
Wszyscy wiedzą, że nowi programiści piszą długie funkcje. W miarę postępów coraz lepiej radzisz sobie z dzieleniem kodu na mniejsze części, a doświadczenie uczy Cię, jak to robić. Wpisz SQL. Tak, SQLowe myślenie o kodzie różni się od proceduralnego myślenia o kodzie, ale ta zasada wydaje się równie odpowiednia. Powiedzmy, …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.