Pytania otagowane jako refactoring

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

11
W jaki sposób ludzie wykonujący TDD radzą sobie z utratą pracy podczas poważnej refaktoryzacji
Od jakiegoś czasu próbuję nauczyć się pisać testy jednostkowe dla mojego kodu. Początkowo zacząłem robić prawdziwy TDD, w którym nie pisałbym żadnego kodu, dopóki nie napisałem najpierw testu zakończonego niepowodzeniem. Jednak ostatnio miałem drażliwy problem do rozwiązania, który wymagał dużej ilości kodu. Po kilku tygodniach pisania testów, a potem pisania …
37 tdd  refactoring 


12
Czy stopniowa zmiana metodologii pisania kodu wpłynęła na wydajność systemu? I czy powinno mnie to obchodzić?
TD; DR: Było trochę zamieszania co do tego, o co pytałem, więc oto najważniejszy pomysł na pytanie: Zawsze chciałem, aby pytanie było takie, jakie jest. Być może początkowo nie wyraziłem tego dobrze. Ale intencja zawsze była „ modułowa, oddzielona, ​​luźno sprzężona, odsprzężona, zrefaktoryzowany kod ” znacznie wolniejszy z samej swojej …

4
Jaki jest termin tego typu refaktoryzacji
Jestem pewien, że istnieje termin na ponowną refaktoryzację, ale nie pamiętam go, a mój Google-fu mnie zawodzi! Refaktor przesuwa się, jeśli instrukcje, do których będą miały największy wpływ, na przykład zmieniając to $test = someFunctionThatReturnsABool(); for($x = 0; $x < 10000; $x++) { if ($test) { echo $x; } } …

7
Jak zapobiec nieznanemu powielaniu kodu?
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 …

8
Czy „zmienne powinny żyć w możliwie najmniejszym zakresie” obejmują przypadek „zmienne nie powinny istnieć, jeśli to możliwe”?
Zgodnie z przyjętą odpowiedzią „ Racjonalne uzasadnienie preferowania zmiennych lokalnych zamiast zmiennych instancji? ” Zmienne powinny mieć możliwie najmniejszy zakres. Uprość problem do mojej interpretacji, oznacza to, że powinniśmy zmienić kod tego rodzaju: public class Main { private A a; private B b; public ABResult getResult() { getA(); getB(); return …

10
Czy „Parent x = new Child ();” zamiast „Child x = new Child ();” jest złą praktyką, jeśli możemy użyć tego drugiego?
Na przykład widziałem niektóre kody, które tworzą taki fragment: Fragment myFragment=new MyFragment(); który deklaruje zmienną jako Fragment zamiast MyFragment, który MyFragment jest klasą potomną Fragment. Nie jestem usatysfakcjonowany tą linią kodów, ponieważ uważam, że ten kod powinien być: MyFragment myFragment=new MyFragment(); co jest bardziej szczegółowe, czy to prawda? Lub w …

9
Kiedy refaktoryzować
Przeczytałem większość książek o refaktoryzacji Fowlera i dokonałem refaktoryzacji wielu aplikacji w mojej dużej i małej przeszłości. Jedną z trudniejszych rzeczy, których nauczam, jest „kiedy” refaktoryzować. Zwykle robię to w oparciu o przeczucie, które w przeszłości służyło mi wyjątkowo dobrze. Jednak kiedy wchodzimy w dyskusje z ludźmi na temat tego, …


11
Jakie czynniki powinny wpłynąć na to, jak określić, kiedy porzucić mały projekt z przyjacielem? [Zamknięte]
Ostatnio znalazłem się w trudnym miejscu. Pracuję nad grą z programistą od prawie 8 miesięcy. Oboje zaczęliśmy jako początkujący programista około sierpnia ubiegłego roku, jest studentem CS na drugim roku, jestem z zawodu technikiem wsparcia IT i jestem samoukiem z mnóstwem książek i subskrypcji online. Problem, który ciągle widzę, polega …



6
Czy istnieje wzorzec projektowy, który eliminuje potrzebę sprawdzania flag?
Mam zamiar zapisać trochę ładunku ciągu w bazie danych. Mam dwie konfiguracje globalne: szyfrowanie kompresja Można je włączyć lub wyłączyć za pomocą konfiguracji w taki sposób, że tylko jedna z nich jest włączona, obie są włączone lub obie są wyłączone. Moja obecna implementacja to: if (encryptionEnable && !compressEnable) { encrypt(data); …

6
Refaktoryzacja instrukcji zamiany i czy w ogóle istnieje rzeczywiste zastosowanie instrukcji zamiany?
Czytałem ten artykuł i zastanawiałem się, czy pozbyliśmy się wszystkich instrukcji zamiany, zastępując je słownikiem lub fabryką, aby w moich projektach nie było żadnych instrukcji switch. Coś nie do końca się sumowało. Pytanie brzmi: czy instrukcje przełączające mają jakiekolwiek zastosowanie, czy też zastępujemy je słownikiem lub metodą fabryczną (przy użyciu …

13
Jak daleko mogę przesunąć refaktoryzację bez zmiany zachowania zewnętrznego?
Według Martina Fowlera refaktoryzacja kodu jest (wyróżnienie moje): Refaktoryzacja to zdyscyplinowana technika restrukturyzacji istniejącego kodu, zmieniająca jego wewnętrzną strukturę bez zmiany zewnętrznych zachowań . Jego sercem jest seria drobnych zachowań zachowujących transformacje. Każda transformacja (zwana „refaktoryzacją”) niewiele robi, ale sekwencja transformacji może spowodować znaczną restrukturyzację. Ponieważ każde refaktoryzacja jest niewielka, …

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.