A refatoração é feita melhor em pequenos passos e, de preferência, somente se você tiver testes de unidade para cobrir o código. (Então, se você ainda não tem testes, esforce-se para escrevê-los primeiro e, até lá, siga as refatorações mais simples, mais infalíveis, de preferência automatizadas. Uma grande ajuda nisso é Trabalhando efetivamente com o código legado de Michael Feathers.
Em geral, tente melhorar o código sempre que tocá-lo. Siga a Regra de Escoteiros ( cunhada por Robert C. Martin ) deixando o código mais limpo do que o encontrou. Quando você adicionar um novo código, tente mantê-lo separado do código inválido existente. Por exemplo. não o enterre no meio de um método longo, em vez disso, adicione uma chamada a um método separado e coloque seu novo código lá. Dessa forma, você cresce ilhas gradualmente maiores de código limpo (er) dentro da base de código existente.
Atualizar
Refactoring cost will be heavier than its benefits. [...] You, as developer, do you prefer to maintain easy stupid boring code OR to have some helpers that will do the stupid boring code at your place ?
Eu enfatizei o que acredito ser o ponto chave aqui. Vale sempre a pena avaliar os custos e benefícios da refatoração antes de entrarmos nela. Como no seu caso, a maioria de nós tem recursos limitados para refatoração, então devemos usá-los com sabedoria. Gaste esse precioso tempo com a refatoração, onde ela traz mais benefícios com o mínimo de esforço.
Como uma mente criativa, é claro que eu preferiria produzir código perfeito, bonito e elegante, e reescrever tudo o que não se assemelha aos meus ideais :-) Na realidade, sou pago para produzir software que resolve problemas reais para seus usuários. , então eu deveria pensar em produzir o maior valor para o seu dinheiro a longo prazo.O benefício da refatoração só aparece se houver economias de tempo e esforços suficientes para entender, manter, corrigir e estender o código a longo prazo . Então, se um pedaço de código - por mais horrível que seja - raramente ou nunca tocado, não há bugs conhecidos nele e eu não sei de nenhum futuro próximo que possa exigir que eu o toque, eu prefiro sair em paz.