Fiquei bastante interessado em codificar katas nos últimos meses. Acredito que eles são uma ótima maneira de aprimorar minhas habilidades de programação e melhorar a qualidade do código que escrevo no trabalho.
Existem vários lugares onde Katas pode ser encontrado. gostar..
http://schuchert.wikispaces.com/Katas
Eu achei esses excelentes repositórios de Katas ... minhas tentativas em alguns deles foram imensamente recompensadoras.
No entanto, sinto que todos os Kata que vi até agora têm uma breve vinda. Nenhum deles parece me permitir praticar a refatoração de códigos ruins. É ótimo aprender a escrever código limpo da primeira vez ... mas no meu trabalho atual, não tenho muitas oportunidades para escrever um novo código. Em vez disso, estou frequentemente lutando contra o código legado e tentando descobrir como refatorar módulos, eliminar dependências e reduzir o acoplamento.
Como tal, estou atento a alguns Katas que posso usar para aprimorar minhas habilidades de refatorar o código legado e transformá-lo em código limpo.
Alguém sabe de algum que já existe? Sei que tenho muita prática enquanto estou no trabalho ... mas gostaria de aprimorar minhas habilidades a ponto de poder ver rapidamente como separar dependências e separar preocupações em classes que faça demais.
fonte
Respostas:
Não conheço um site que os catalogue diretamente, mas uma estratégia que usei ocasionalmente é a seguinte:
Quando você encontrar uma parte que foi especialmente desafiadora, jogue fora seu trabalho e repita-o algumas vezes para reforçar suas habilidades.
Isso não apenas pratica a refatoração, mas outras habilidades, como leitura de código, teste e tratamento de processos de construção.
O problema mais difícil é encontrar um projeto no qual você esteja interessado o suficiente para continuar trabalhando. O último em que trabalhei foi uma biblioteca python para programação genética, e o atual em que estou trabalhando é uma biblioteca IRC para Java.
fonte
Sinto-me como um necromante respondendo a um tópico tão antigo, mas há uma coisa que faria uma adição digna - Retiro de Código Legado .
A idéia é fazer um Retiro de Código com código legado e tentar praticar as próprias técnicas para lidar com isso, mas não vejo nada que possa proibi-lo de simplesmente usar o código preparado e praticar sozinho. Apenas usá-lo para criar um Golden Master resulta em uma hora de trabalho e você pode fazer muito mais. Se seu kata geralmente dura cerca de duas horas, eu diria que apenas dividir o que geralmente acontece no LCR em kata fornece quatro coisas diferentes para você trabalhar.
Existe um repositório GitHub do autor da idéia, JB Rainsberger, que contém um sistema legado simples com o qual você deve trabalhar, Trivia Game.
Pela minha experiência como organizador / participante, as pessoas realmente gostaram disso e foi esclarecedor ver o que pode ser um problema em um código legado e onde sua refatoração pode levar você a se desviar (e como!). Aqui está mais um relato de como é, por Andreas Leidig .
fonte
O Emily Bache possui um repositório no github com alguns katas de refatoração: o Reata do Kata de refatoração de Emily Bache . Existem variantes do KataYahtzee e do KataTennis para refatorar. Além disso, ela tem uma variante do Kata da Rosa Dourada, que foi projetado como um kata de refatoração.
Além disso, ela tem o Racing Car Katas em seu repo: Racing Car Kata . O Race Car Katas também inclui bons exercícios para refatoração.
Esses kata têm o código em vários idiomas:
fonte