Kodowanie katów do Ćwiczenia refaktoryzacji kodu źródłowego

W ostatnich miesiącach zainteresowałem się kodowaniem katów. Uważam, że są one świetnym sposobem na doskonalenie moich umiejętności programistycznych i poprawę jakości kodu, który piszę w pracy.

Istnieje wiele miejsc, gdzie można znaleźć Katas. na przykład..

Http://codekata.pragprog.com/

Http://schuchert.wikispaces.com/Katas

Http://www.codingdojo.org/

Uważam, że są to doskonałe repozytoria Katas... moje próby na niektórych z nich zostały niezmiernie satysfakcjonujące.

Jednak czuję, że wszystkie Kata, które widziałem do tej pory, mają jeden krótki nadchodzi. Żaden z nich nie pozwala mi ćwiczyć refaktoryzacji złego kodu. Świetnie jest nauczyć się pisać czysty kod za pierwszym razem...ale w mojej obecnej pracy nie mam zbyt wielu możliwości pisania nowego kodu. Raczej często walczę ze starszym kodem i staram się wymyślić, jak refaktorować Moduły, wyeliminować zależności i zmniejszyć sprzęgło.

W związku z tym poszukuję kilku katów, których mogę użyć do doskonalenia moich umiejętności refaktoryzacji kodu źródłowego i przekształcenia go w czysty kod.

Czy ktoś wie o tych, które już istnieją? Wiem, że mam dużo praktyki w tym, gdy jestem w pracy...ale chciałbym doskonalić swoje umiejętności do tego stopnia, że jestem w stanie szybko zobaczyć, jak rozbijać zależności i oddzielać obawy w klasach, które robią o wiele za dużo.

Author: Dineshkumar, 2009-09-16

3 answers

Nie znam strony, która je bezpośrednio kataloguje, ale jedna ze strategii, którą kiedyś zastosowałem, jest taka:

  1. Znajdź stary, mały, niezabezpieczony projekt open source na sourceforge
  2. pobierz go, pobierz do kompilacji/budowania / uruchamiania
  3. przeczytaj dokumentację, Poczuj kod
  4. Użyj technik w efektywnej pracy z kodem dziedziczonym, aby uzyskać jego fragment pod testem
  5. Refakturuj ten kawałek, być może naprawiając błędy i dodając funkcje wzdłuż the way
  6. Powtórz kroki od 4 do 6

Gdy znajdziesz część, która jest szczególnie trudna, wyrzuć swoją pracę i powtórz ją kilka razy, aby wzmocnić swoje umiejętności.

To nie tylko ćwiczenie refaktoryzacji, ale także inne umiejętności, takie jak czytanie kodu, Testowanie i radzenie sobie z procesami budowania.

Najtrudniejszym problemem jest znalezienie projektu, który jest wystarczająco interesujący, aby nadal pracować. Ostatnim, nad którym pracowałem, była biblioteka Pythona do programowania genetycznego, obecnie pracuję nad biblioteką IRC dla Javy.

 82
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-30 18:20:20

Czuję się jak nekromanta odpowiadający na tak stary wątek, ale jest jedna rzecz, która byłaby godnym dodatkiem- Legacy Code Retreat .

Pomysł polega na tym, aby mieć Code Retreat z kodem dziedziczonym i spróbować przećwiczyć techniki radzenia sobie z tym, ale nie widzę niczego, co zabraniałoby ci po prostu używać przygotowanego kodu i ćwiczyć z nim samemu. Samo używanie go do tworzenia Złotego mistrza sprawia, że godzina pracy, a jest o wiele więcej dasz radę. Jeśli twój kata zwykle trwa około 2 godzin, powiedziałbym, że dzieląc to, co zwykle dzieje się na LCR na kata, możesz pracować nad czterema różnymi rzeczami.

Istnieje repozytorium GitHub autorstwa J. B. Rainsbergera, które zawiera prosty system, z którym będziesz pracować, Ciekawostki gry.

Z mojego doświadczenia jako organizator / uczestnik, ludzie naprawdę to lubili i było oświecające, aby zobaczyć, co może być problemem w kodzie starsze i gdzie twój refaktoryzacja może doprowadzić cię na manowce (i jak!). Oto kolejna relacja z tego, jak to wygląda, autorstwa Andreasa Leidiga .

 18
Author: LIttle Ancient Forest Kami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-09 12:02:55

Emily Bache ma repozytorium github z kilkoma refaktoryzującymi katami: Emily Bache ' s Refactoring Kata Repo . Istnieją warianty katayahtzee i KataTennis do refakturowania. Ma również wariant Kata pozłacanej róży, który został zaprojektowany jako refaktoryzująca kata.

Ma również w repo samochód wyścigowy Katas: Samochód Wyścigowy Kata. Samochód wyścigowy Katas zawiera również dobre ćwiczenia do refaktoryzacji.

Te kata mają kod w wielu langauages:

  • C++
  • C #
  • Java
  • Javascript
  • Python
  • Ruby
 17
Author: Steve Clanton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-25 22:36:16