Fazendo alterações incrementais e futuras necessárias / compatíveis primeiro sem mudança de comportamento: como é chamado?

5

Eu tenho um método de codificação / refatoração que agora faço automaticamente, mas percebo que não sei como é chamado.

Se estou fazendo uma alteração e percebo que é necessário alterar alguns códigos existentes, sempre considero se posso fazer essa alteração primeiro, sem qualquer alteração de comportamento. Se puder, faço isso, certificando-se de que os testes sejam aprovados, confirmados e implantados, se possível. Só então eu realmente faço a mudança para a tarefa em mãos.

Às vezes, essa alteração anterior pode revelar a necessidade de outra alteração, que também pode ser feita primeiro, e assim por diante. (Apesar de este ser aninhado vários níveis de profundidade tem sido bastante raro, provavelmente porque o tamanho inicial da tarefa que me propus para fazer eu tento manter pequeno de qualquer maneira)

Como esse método é chamado?

    
por Michal Charemza 18.02.2017 / 15:24
fonte

3 respostas

2

Não tenho certeza se existe um nome oficial para esse método.

Mas, claramente, por analogia com os gráficos, você é um adepto do que eu chamaria de profundidade primeiro alterar a propagação : quando você realiza uma alteração, você sempre aprofunda o escopo de suas alterações, abrindo alterações adicionais em outro nível de detalhe.

A abordagem tradicional de "uma mudança após a outra" seria mais como uma abordagem amplitude : cada mudança (nível) é implementada antes de considerar a propagação de mudanças para o próximo nível.

    
por 18.02.2017 / 15:55
fonte
2

Eu chamaria isso de refatoração , mas com micro commits , ou micro fluxo de trabalho orientado por commit . (Acabei de apresentar isso.) Destaques do artigo vinculado que lista os benefícios desse método:

  • micro commits mostra o processo incremental pelo qual você chegou à sua solução final
  • práticas de desenvolvimento mais disciplinadas
  • melhores revisões de código
  • bisect e cherry-pick tornam-se mais úteis
por 19.02.2017 / 21:12
fonte
2

Isso me lembra de Limited Red e Refactoring to Patterns .

O padrão de alteração restrita pode ser compatível com o que você descreve, dependendo do que você entende por "é necessário alterar um código existente" .

    
por 20.02.2017 / 16:20
fonte