W ostatnich miesiącach zainteresowałem się kodowaniem kata. Uważam, że to świetny sposób na doskonalenie umiejętności programistycznych i poprawę jakości kodu, który piszę w pracy.
Istnieje wiele miejsc, w których można znaleźć Katas. lubić..
http://schuchert.wikispaces.com/Katas
Okazało się, że są to doskonałe repozytoria Katas ... moje próby uzyskania niektórych z nich były niezwykle satysfakcjonujące.
Jednak czuję, że wszystkie Kata, które widziałem do tej pory, mają jedno krótkie nadejście. Żaden z nich nie pozwala mi ćwiczyć refaktoryzacji złego kodu. To świetna nauka pisania czystego kodu za pierwszym razem ... ale w mojej obecnej pracy nie mam zbyt wielu okazji do pisania nowego kodu. Raczej często walczę ze starszym kodem i próbuję dowiedzieć się, jak refaktoryzować moduły, eliminować zależności i redukować sprzężenia.
W związku z tym szukam kilku Katas, których mogę użyć, aby doskonalić swoje umiejętności refaktoryzacji starego kodu i przekształcania go w czysty kod.
Czy ktoś wie o czymś, co już istnieje? Wiem, że mam w tym dużo praktyki, gdy jestem w pracy ... ale chciałbym doskonalić swoje umiejętności do tego stopnia, że jestem w stanie szybko zobaczyć, jak rozdzielić zależności i rozdzielić obawy na zajęciach, które zbyt wiele.
źródło
Odpowiedzi:
Nie znam witryny, która bezpośrednio je kataloguje, ale jedna ze strategii, z której czasami korzystam, jest taka:
Kiedy znajdziesz część, która była szczególnie trudna, wyrzuć swoją pracę i powtórz ją kilka razy, aby wzmocnić swoje umiejętności.
To nie tylko praktyka refaktoryzacji, ale także innych umiejętności, takich jak czytanie kodu, testowanie i radzenie sobie z procesami kompilacji.
Najtrudniejszym problemem jest znalezienie projektu, który interesuje Cię na tyle, aby kontynuować pracę. Ostatnim, nad którym pracowałem, była biblioteka Pythona do programowania genetycznego, a obecna, nad którą pracuję, to biblioteka IRC dla Javy.
źródło
Czuję się jak nekromanta odpowiadający na tak stary wątek, ale jest jedna rzecz, która mogłaby być godnym dodatkiem - Legacy Code Retreat .
Pomysł polega na tym, aby mieć Code Retreat ze starszym kodem i spróbować przećwiczyć te same techniki radzenia sobie z takim kodem, ale nie widzę niczego, co zabraniałoby ci po prostu używać przygotowanego kodu i ćwiczyć go samodzielnie. Samo użycie go do stworzenia Złotego Mistrza wymaga godziny pracy, a możesz zrobić o wiele więcej. Jeśli twoje kata zwykle trwa około 2 godzin, powiedziałbym, że podzielenie tego, co zwykle dzieje się na LCR, na kata daje cztery różne rzeczy do pracy.
Jest repozytorium GitHub autorstwa autora pomysłu, JB Rainsbergera, które zawiera prosty, starszy system, z którym masz pracować, Trivia Game.
Z mojego doświadczenia jako organizatora / uczestnika wynika, że ludziom bardzo się to podobało i było to pouczające, aby zobaczyć, co może być problemem w starym kodzie i gdzie refaktoryzacja może was sprowadzić na manowce (i jak!). Oto kolejna relacja, jak to wygląda, autorstwa Andreasa Leidiga .
źródło
Emily Bache ma repozytorium github z kilkoma refaktoryzującymi katami: Refactoring Kata Repo Emily Bache . Istnieją warianty KataYahtzee i KataTennis do refaktoryzacji. Ma również wariant Kata pozłacanej róży, który został zaprojektowany jako refaktoryzujące kata.
Ponadto ma w swoim repozytorium wyścigi samochodowe Katas: Racing Car Kata . Race Car Katas zawiera również dobre ćwiczenia do refaktoryzacji.
Te kata mają kod w wielu językach:
źródło