Um papo sobre como estamos refatorando por aqui na Resultados Digitais, alguns fatores que nos auxiliam na tomada de decisão de quando refatorar determinado ponto e as consequências destas decisões.
termo “Refatoração" de forma diferente do proposto pelos principais autores do tema; Porque já tive muitas dificuldades em fazer com que o PO/PM/ Gestor comprasse a refatoração;
termo “Refatoração" de forma diferente do proposto pelos principais autores do tema; Porque já tive muitas dificuldades em fazer com que o PO/PM/ Gestor comprasse a refatoração; Porque já abracei refatoração pensando resolver em 1 dia e resolvi em 4;
termo “Refatoração" de forma diferente do proposto pelos principais autores do tema; Porque já tive muitas dificuldades em fazer com que o PO/PM/ Gestor comprasse a refatoração; Porque já abracei refatoração pensando resolver em 1 dia e resolvi em 4; Porque eu gostaria de saber destas coisas há alguns anos;
estrutura interna do software para torná-lo mais fácil de ser entendido e menos custoso de ser modificado, sem alterar o seu comportamento observável. • A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
estrutura interna do software para torná-lo mais fácil de ser entendido e menos custoso de ser modificado, sem alterar o seu comportamento observável. • A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
estrutura interna do software para torná-lo mais fácil de ser entendido e menos custoso de ser modificado, sem alterar o seu comportamento observável. • A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.
diferentes. • Refatoração: foco é legibilidade do código, as vezes torna mais rápido, as vezes mais lento. • Performance: foco é tornar o programa mais rápido, mesmo que tenha que sacrificar a legibilidade, entregando um código difícil de entender.
de 1000 linhas em novas classes Quando um método muito grande é quebrado em outros métodos ou classes Quando removemos código morto Quando substituimos um "número mágico"
de 1000 linhas em novas classes Quando um método muito grande é quebrado em outros métodos ou classes Quando removemos código morto Quando substituimos um "número mágico" E muito mais em https://refactoring.com/catalog/
série de refatorações sem alterar seu comportamento observável. • To restructure software by applying a series of refactorings without changing its observable behavior.
computador pode entender. Bons programadores escrevem código que humanos podem entender. Martin Fowler, 1999 Any fool can write code that computer can understand. Good programmers write code that humans can understand. Martin Fowler, 1999
mais fácil de escrever Com a comunicação estabelecida, devemos voltar nosso olhar para a segunda pessoa a usar o que fizemos: o próximo humano que irá pôr as mãos neste código.
mais fácil de escrever Mais vale um ciclo a mais do computador compilando algo, do que a próxima pessoa gastar uma semana numa mudança que levaria algumas horas “só" porque meu código estava complexo para compreender.
sucessão - como dividir o trabalho de refatorar em etapas seguras e como ordenar estas etapas. One of the challenges of refactoring is succession - how to slice the work of a refactoring into safe steps and how to order those steps. Kent Beck
para o sistema escrevendo um teste. Resposta: Respondemos a pergunta escrevendo código que passa no teste. Refinamento: Melhoramos a pergunta consolidando ideias e removendo coisas desnecessárias. Repetição: Mantemos o diálogo com novas perguntas.
contínua, ainda assim, as práticas de refatoração devem coexistir harmoniosamente com as prioridades do negócio." @JoshuaKerievsky (Refactoring to Patterns)