Ich habe mich in den letzten Monaten sehr für das Codieren von Katas interessiert. Ich glaube, sie sind eine großartige Möglichkeit, meine Programmierkenntnisse zu verbessern und die Qualität des Codes zu verbessern, den ich im Job schreibe.
Es gibt zahlreiche Orte, an denen Katas zu finden ist. mögen..
http://schuchert.wikispaces.com/Katas
Ich habe festgestellt, dass dies ausgezeichnete Aufbewahrungsorte für Katas sind ... meine Versuche, einige von ihnen zu besuchen, waren immens lohnend.
Ich habe jedoch das Gefühl, dass alle Kata, die ich bisher gesehen habe, ein kurzes Kommen haben. Keiner von ihnen scheint mir zu erlauben, das Refactoring von schlechtem Code zu üben. Es ist großartig zu lernen, wie man beim ersten Mal sauberen Code schreibt ... aber in meinem aktuellen Job habe ich nicht allzu viele Möglichkeiten, neuen Code zu schreiben. Vielmehr kämpfe ich oft gegen Legacy-Code und versuche herauszufinden, wie man Module umgestaltet, Abhängigkeiten beseitigt und die Kopplung verringert.
Daher bin ich auf der Suche nach ein paar Katas, mit denen ich meine Fähigkeiten verbessern kann, Legacy-Code umzugestalten und in sauberen Code umzuwandeln.
Kennt jemand etwas, das bereits existiert? Ich weiß, dass ich während meiner Arbeit viel Übung darin habe ... aber ich möchte meine Fähigkeiten so verbessern, dass ich schnell erkennen kann, wie man Abhängigkeiten aufteilt und Bedenken in Klassen voneinander trennt viel zu viel tun.
quelle
Antworten:
Ich kenne keine Site, die sie direkt katalogisiert, aber eine Strategie, die ich gelegentlich angewendet habe, ist folgende:
Wenn Sie ein Teil finden, das besonders herausfordernd war, werfen Sie Ihre Arbeit weg und wiederholen Sie sie einige Male, um Ihre Fähigkeiten zu stärken.
Hiermit wird nicht nur das Refactoring geübt, sondern auch andere Fähigkeiten wie das Lesen, Testen und Behandeln von Build-Prozessen.
Das schwierigste Problem besteht darin, ein Projekt zu finden, an dem Sie interessiert sind, um weiterarbeiten zu können. Das letzte, an dem ich gearbeitet habe, war eine Python-Bibliothek für die genetische Programmierung, und das aktuelle, an dem ich arbeite, ist eine IRC-Bibliothek für Java.
quelle
Ich fühle mich wie ein Nekromant, der auf einen so alten Thread antwortet, aber es gibt eine Sache, die für eine würdige Ergänzung sorgen würde - Legacy Code Retreat .
Die Idee ist, ein Code-Retreat mit Legacy-Code durchzuführen und zu versuchen, genau die Techniken für den Umgang mit solchen zu üben, aber ich kann nichts sehen, was Sie daran hindern würde, den Code einfach zu verwenden und selbst damit zu üben. Wenn Sie es nur zum Erstellen eines Goldenen Meisters verwenden, erhalten Sie eine Stunde Arbeit, und Sie können noch viel mehr tun. Wenn Ihre Kata normalerweise ungefähr 2 Stunden dauert, würde ich sagen, wenn Sie das, was normalerweise bei LCR passiert, in Kata aufteilen, erhalten Sie vier verschiedene Dinge, an denen Sie arbeiten können.
Es gibt ein GitHub-Repository des Autors der Idee, JB Rainsberger, das ein einfaches Legacy-System enthält, mit dem Sie arbeiten sollen, Trivia Game.
Aus meiner Erfahrung als Organisator / Teilnehmer haben die Leute das wirklich gemocht und es war aufschlussreich zu sehen, was ein Problem in einem Legacy-Code sein kann und wohin Ihr Refactoring Sie in die Irre führen kann (und wie!). Hier ist noch ein Bericht von Andreas Leidig, wie es aussieht .
quelle
Emily Bache hat ein Github-Repository mit einigen Refactoring-Katas: Emily Baches Refactoring Kata Repo . Es gibt Varianten von KataYahtzee und KataTennis zum Refactor. Außerdem hat sie eine Variante der Gilded Rose Kata, die als Refactoring-Kata konzipiert wurde.
Außerdem hat sie den Rennwagen Katas in ihrem Repo: Rennwagen Kata . Die Race Car Katas beinhalten auch gute Übungen zum Refactoring.
Diese Kata haben den Code in mehreren Sprachen:
quelle