Me he interesado bastante en codificar katas en los últimos meses. Creo que son una excelente manera de perfeccionar mis habilidades de programación y mejorar la calidad del código que escribo en el trabajo.
Hay numerosos lugares donde se pueden encontrar Katas. me gusta..
http://schuchert.wikispaces.com/Katas
He encontrado que estos son excelentes depósitos de Katas ... mis intentos en algunos de ellos han sido inmensamente gratificantes.
Sin embargo, siento que todos los Kata que he visto hasta ahora tienen un corto camino. Ninguno de ellos parece permitirme practicar la refactorización de códigos incorrectos. Es genial aprender a escribir código limpio la primera vez ... pero en mi trabajo actual, no tengo muchas oportunidades para escribir código nuevo. Más bien, a menudo estoy luchando contra el código heredado e intentando descubrir cómo refactorizar módulos, eliminar dependencias y reducir el acoplamiento.
Como tal, estoy buscando un par de Katas que pueda usar para perfeccionar mis habilidades de refactorizar el código heredado y convertirlo en código limpio.
¿Alguien sabe de alguno que ya exista? Sé que practico mucho mientras estoy en el trabajo ... pero me gustaría perfeccionar mis habilidades hasta el punto de poder ver rápidamente cómo separar las dependencias y las preocupaciones separadas en las clases que hacer demasiado
fuente
Respuestas:
No conozco un sitio que los catalogue directamente, pero una estrategia que he usado en ocasiones es esta:
Cuando encuentre una parte que fue especialmente desafiante, deseche su trabajo y repítalo un par de veces para reforzar sus habilidades.
Esto no solo practica la refactorización, sino otras habilidades como la lectura de códigos, las pruebas y el manejo de procesos de compilación.
El problema más difícil es encontrar un proyecto en el que esté lo suficientemente interesado como para seguir trabajando. El último en el que trabajé fue una biblioteca de Python para programación genética, y el actual en el que estoy trabajando es una biblioteca IRC para Java.
fuente
Me siento como un nigromante respondiendo a un hilo tan antiguo, pero hay una cosa que sería una adición digna: el Retiro de código heredado .
La idea es tener un retiro de código con código heredado y tratar de practicar las técnicas para tratarlo, pero no veo nada que te impida simplemente usar el código preparado y practicarlo tú mismo. Solo usarlo para crear un Golden Master hace una hora de trabajo, y hay mucho más que puedes hacer. Si su kata generalmente dura alrededor de 2 horas, diría que simplemente dividiendo lo que generalmente sucede en LCR en kata le da cuatro cosas diferentes para trabajar.
Hay un repositorio de GitHub del autor de la idea, JB Rainsberger, que contiene un sistema heredado simple con el que debes trabajar, Trivia Game.
Desde mi experiencia como organizador / participante, a la gente realmente le gustó esto y fue esclarecedor ver qué puede ser un problema en un código heredado y dónde su refactorización puede llevarlo por mal camino (¡y cómo!). Aquí hay otra cuenta de cómo se ve, por Andreas Leidig .
fuente
Emily Bache tiene un repositorio de github con algunas katas refactorizadoras: Repoctorización Kata Repo de Emily Bache . Hay variantes de KataYahtzee y KataTennis para refactorizar. Además, ella tiene una variante de la rosa dorada Kata, que fue diseñada como una kata refactorizadora.
Además, ella tiene las Racing Car Katas en su repositorio: Racing Car Kata . Los Race Car Katas también incluyen buenos ejercicios para refactorizar.
Esos kata tienen el código en múltiples idiomas:
fuente