Pytania otagowane jako refactoring

Refaktoryzacja to zdyscyplinowana technika restrukturyzacji istniejącego kodu, zmieniająca jego wewnętrzną strukturę bez zmiany zewnętrznych zachowań.


7
Jeśli biegły programista lekceważy dobre praktyki, to czy jego płynność nie działa przeciwko niemu? [Zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 4 lata temu . Pracuję nad dość dużą i wadliwą aplikacją - a ze względu na sposób, …

10
Jak naprawić wzór kopiowania / wklejania?
Tam, gdzie pracuję, ludzie (konsultanci) odczuwają presję, aby jak najszybciej udostępnić funkcje. Zamiast więc spędzać zbyt dużo czasu na myśleniu o tym, jak robić rzeczy we właściwy sposób lub ponieważ nie chcą niczego zepsuć, kod jest kopiowany z różnych modułów i modyfikowany. Nie jest łatwo temu zapobiec, ponieważ podstawa kodu …

7
Czy powinienem refaktoryzować duże funkcje, które w większości składają się z jednego wyrażenia regularnego? [Zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Właśnie napisałem funkcję, która obejmuje około 100 linii. Słysząc to, prawdopodobnie masz ochotę …

5
Po co pisać testy kodu, który będę refaktoryzować?
Refaktoryzuję ogromną klasę kodu starszego typu. Refaktoryzacja (jak sądzę) zaleca: pisz testy dla starszych klas refaktorem do cholery z klasy Problem: po ponownym złożeniu klasy moje testy w kroku 1 będą musiały zostać zmienione. Na przykład to, co kiedyś było starszą metodą, teraz może być osobną klasą. To, co było …

2
Powinienem był zastosować metodę fabryczną zamiast konstruktora. Czy mogę to zmienić i nadal być kompatybilny wstecz?
Problem Powiedzmy, że mam klasę o nazwie, DataSourcektóra zapewnia ReadDatametodę (i może inne, ale bądźmy prostymi) do odczytu danych z .mdbpliku: var source = new DataSource("myFile.mdb"); var data = source.ReadData(); Kilka lat później postanawiam, że chcę być w stanie obsługiwać .xmlpliki oprócz .mdbplików jako źródeł danych. Implementacja „odczytu danych” jest …

6
Jak określić priorytet i wagę „ulepszenia kodu”?
W naszym systemie śledzenia błędów mamy pola „priorytet” i „ważność”. Istotność definiujemy jako „jak wpływa na użytkownika”, a priorytet na „jak wpływa na produkt”. Moje pytanie dotyczy tego, jak sklasyfikować zadanie „poprawy kodu” pod względem ważności i priorytetu. Załóżmy, że ulepszenie nie zmienia żadnego zachowania, ale czyni go „lepszym kodem”. …



7
Obrona dla płyty kotłowej?
Dla mnie kod płyty głównej jest oczywiście zły. Jednak spotkałem programistę, który wykazuje opór przy każdej próbie zmniejszenia płyty kotłowej. Uświadomiłem sobie, że nie miałem łatwo sformułowanego, dobrze przemyślanego argumentu po odrazie, którą rozwinąłem z czasem. Jakie są niektóre kontrargumenty, abym mógł sformułować przekonujący argument za faworyzowaniem mniejszej liczby płyt …

3
Tłumy konstruujące jedno wdrożenie. DI beznadziejny? Używać lokalizatora usług?
Załóżmy, że mamy 1001 klientów, którzy konstruują swoje zależności bezpośrednio, zamiast akceptować zastrzyki. Według naszego szefa refaktoryzacja 1001 nie jest opcją. W rzeczywistości nie mamy nawet dostępu do ich źródła, tylko do plików klas. Powinniśmy „zmodernizować” system, przez który przechodzi 1001 klientów. Możemy refaktoryzować to, co lubimy. Zależności są częścią …

10
Co może być przyczyną pojawienia się nowych błędów w innym miejscu po rozwiązaniu znanego błędu?
Podczas dyskusji jeden z moich kolegów powiedział, że ma pewne trudności z bieżącym projektem podczas próby rozwiązania błędów. „Kiedy rozwiązuję jeden błąd, coś innego przestaje działać gdzie indziej”, powiedział. Zacząłem myśleć o tym, jak to się mogło stać, ale nie mogę tego rozgryźć. Czasami mam podobne problemy, gdy jestem zbyt …

3
Jak nawigować i refaktoryzować kod napisany w dynamicznym języku?
Uwielbiam to, że pisanie Pythona, Ruby lub Javascript wymaga tak niewielkiej liczby elementów. Uwielbiam proste konstrukcje funkcjonalne. Uwielbiam czystą i prostą składnię. Są jednak trzy rzeczy, w których jestem naprawdę zły podczas tworzenia dużego oprogramowania w dynamicznym języku: Poruszanie się po kodzie Identyfikowanie interfejsów obiektów, których używam Wydajna refaktoryzacja Próbowałem …

4
Powielanie kodu bez oczywistej abstrakcji
Czy kiedykolwiek spotkałeś się z przypadkiem duplikacji kodu, w którym, patrząc na linie kodu, nie mogłeś dopasować do niego abstrakcji tematycznej, która wiernie opisuje jego rolę w logice? A co zrobiłeś, aby to rozwiązać? Jest to powielanie kodu, więc idealnie musimy zrobić refrakcję, na przykład nadać jej własną funkcję. Ale …

3
Jak bezpiecznie refaktoryzować w języku z dynamicznym zakresem?
Dla tych z was, którzy mają szczęście nie pracować w języku z dynamicznym zakresem, pozwólcie, że trochę odświeżę, jak to działa. Wyobraź sobie pseudo-język o nazwie „RUBELLA”, który zachowuje się tak: function foo() { print(x); // not defined locally => uses whatever value `x` has in the calling context y …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.