oraz wszystko, co mym zdaniem, związek ma z programowaniem
Posts tagged czysty kod
Chociaż pozbyłeś się komentarzy, ich zło się w kodzie wciąż może zdarzyć.
Komentarze z reguły są złe, zamiast nich należy pisać czytelny kod (czyli kod, który czytany wyjaśnia swoje działanie). Są złe bo się dewaluują, tj. po jakimś czasie nie korespondują z kodem, opisują go w nieprawdziwy sposób, bo kod się zmienił. Jest to prawda, której obecnie nie trzeba chyba już [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Podsumowanie.
Po odłożeniu kodu na weekend, jego przeglądzie i uwzględnieniu komentarzy, można uznać proces refaktoryzacji za zakończony. Pisząc „proces” mam tu na myśli wykonanie refaktoryzacji o ściśle określonym celu – w tym przypadku było to stworzenie mechanizmu importu, który zastąpi używany obecnie. Nie [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 19.
Ostatnią z czynności refaktoryzacyjnych będzie przystosowanie dotychczasowej klasy MethodObject do używania powstałych w trakcie refaktoryzacji klas. Jak można sprawdzić w części drugiej, klasa ta posiadała cztery publiczne metody: ImportCSV(), ImportTabSeparated(), ImportFixed(), ImportBinary(). [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 18.
W dotychczasowym procesie refaktoryzacji udało nam się stworzyć elastyczny mechanizm importu – uzyskaliśmy tym samym podstawową funkcjonalność w zadowalającej postaci. Pora zająć się pozostałymi operacjami, które są niezbędne, aby uzyskać kompletną, pierwotną funkcjonalność refaktoryzowanego kodu. [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 17.
Jak obiecałem – dziś uzupełnimy dotychczasowy zestaw testów o nowe testy. Co będziemy testować? Jeśli ktoś uważnie śledzi ten cykl zapewne oczekuje, że – zgodnie z wcześniejszymi zapowiedziami – przygotujemy test sprawdzający uruchamianie wszystkich metod biorących udział w przetwarzaniu pliku oraz [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 16.
W tym wpisie zaprezentuję dwie klasy dziedziczące po FileOfValuesReader i realizujące odczyt z plików tekstowych oraz binarnych. Obie klasy będą współpracować z odpowiadającymi im klasami wyodrębniającymi wartości z odczytanej zawartości. A ponieważ dopełnią one całości mechanizmu importu, to [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 15.
Nadeszła pora, by doprowadzić do współpracy klas odczytujących pliki i klas wyodrębniających z nich dane. Aby ta współpraca była jednak w ogóle możliwa – klasa FileOfValuesReader musi zostać zmodyfikowana, albowiem musi być możliwe „wstrzyknięcie” do niej obiektu implementującego interfejs [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 14.
W poprzedniej części uczyniliśmy spostrzeżenie, że z dotychczasowych klas można wyodrębnić niezależną funkcjonalność – interpretację odczytywanych danych. Obecnie zajmiemy się jej implementacją. Nie będzie ona specjalnie trudna, ponieważ większość kodu już istnieje – zawierają go metody Extract() [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 13.
Przygotowane w poprzedniej części testy uwidoczniły pewne ułomności zaimplementowanych klas – chcąc przetestować funkcjonalność powiadamiania o postępie przetwarzania pliku, konieczne było wykonanie samego importu. To nasuwa wniosek, że powiadamianie o postępie zależy od samego procesu importu. Co [...]
Nadeszła pora na cykl publikacji: „Historia pewnej refaktoryzacji”. Część 12.
Pora po raz kolejny napisać testy dla uzyskanego kodu. Zapewne niektórzy zaczynają być znużeni tą ciągłą potrzebą pisania testów. Cóż – jest to jedyny sposób na zapewnienie odpowiedniej jakości kodu. A pisząc „odpowiedniej” mam na myśli jedynie jego poprawność.
Na pocieszenie uchylę rąbka tajemnicy [...]