Está fazendo uma pequena alteração, testando-a, depois “enxaguar e repetir”, um mau hábito?

54

Eu sou um programador com vários anos de experiência. Eu percebi que tenho um certo hábito. Não tenho certeza se é realmente um mau hábito ou não.

Eu recebo uma lista de tarefas para executar uma solução, mesmo pequenas pequenas tarefas, por exemplo,

  1. Alterar recursos deste controle de usuário
  2. Alterar tamanho de outro
  3. Adicione um pouco de HTML e codifique em outro controle de usuário

Todas essas tarefas são pequenas. Quero dizer, eles podem ser feitos em 10 minutos, mas tenho o mau hábito de fazer pequenas alterações e testá-las novamente em um navegador da Web . Esta é uma boa prática?

Ou devo executar todos de uma vez e testá-los juntos?

Se é realmente um mau hábito, então como eu o corrijo, pois parece que estou perdendo tempo testando pequenas mudanças várias vezes?

    
por Mathematics 01.08.2014 / 15:34
fonte

6 respostas

129
  • É uma boa prática.
  • Você está seguindo o método científico.
  • Se você alterar várias coisas antes de qualquer teste, o teste de cada um será mais difícil e talvez não confiável, pois as pré-condições serão mais difíceis de preparar e as diferentes mudanças podem interagir umas com as outras de maneiras que você não fez. prever.
  • O tempo que você sente que está "desperdiçando" agora, você recuperará mais tarde nos estágios de integração, teste e manutenção.
  • Caminho a percorrer.
por 01.08.2014 / 16:31
fonte
38

Fazer muitas pequenas mudanças e testar cada uma delas não é uma coisa ruim. Ele permite que você veja o efeito de cada alteração e, quando uma alteração causa um problema, é muito mais fácil saber qual alteração causou problemas - o mais recente!

Se você tiver uma lista de tarefas com 10 itens e fizer todos eles de uma só vez e, em seguida, testar a página e perceber que a página parece errada, talvez seja mais difícil saber qual alteração quebrou a página.

Claro, é possível levar essa abordagem ao extremo. Encontrar o equilíbrio é a chave, e isso vem com uma melhor compreensão do qual você está mudando e como as mudanças podem afetar umas às outras.

    
por 01.08.2014 / 16:19
fonte
18

Sua pergunta tem duas partes:

  1. should I perform them all once and then test them together ?

    Suponho que você esteja usando um VCS .
    E para rastrear quais tarefas foram feitas, faz sentido distribuir a lista de tarefas para uma lista de commits: uma tarefa, uma commit .

    Isso facilita o gerenciamento de diferentes versões da base de código atual; você pode reverter para um estado anterior, selecionar as alterações que deseja inserir no tronco principal, etc.

    A resposta é clara:

    Não, faça alterações apenas uma por uma - uma tarefa uma confirmação .

  2. but I got a bad habit of making small small changes and then test them again and again in web browser, is this a good practice ?

    É uma boa prática testar código / interface do usuário qualquer que seja , mas é um absurdo fazê-lo repetidamente no navegador. Existem ferramentas para fazer isso automaticamente ( Selenium, PhantomJS / Casper, ZombieJS )

    A resposta para este caso é:

    Sim, é uma boa prática testar o software mais de uma vez, mas use a automação

por 01.08.2014 / 16:34
fonte
6

Para qualquer hábito que um desenvolvedor tenha, há duas perguntas principais:

  1. Como isso influencia a qualidade do código que você faz?
  2. Como isso influencia sua produtividade?

Se a resposta para ambos é "Torna melhor", estrague o hábito, ensine aos outros!
Se a resposta para um é "melhor" e o outro "pior" - é um estilo e você tem que estar consciente sobre isso. Nem sempre é aplicável, e talvez seja necessário fazer um esforço para suprimi-lo de vez em quando.
Se a resposta para ambos é "Negativa" - você tem um problema sério.

É claro que, nos dois primeiros casos, você também deve pensar em: "O efeito positivo pode ser automatizado ou institucionalizado?". Talvez seja melhor escrever um teste do que experimentar diferentes navegadores todas as vezes? (Note, eu sei que não é tão fácil testar o layout adequado no desenvolvimento da web, não estou dizendo que isso é sempre possível ou que vale a pena).

Neste caso particular, parece-me que a qualidade é aumentada, a produtividade pode ser diminuída. Para pequenas mudanças é provável que seja ruim (especialmente se as mudanças estiverem inter-relacionadas), para maiores - é bom. Contanto que você teste o resultado final também (evite o "cada módulo foi testado e funciona, então a coisa toda funciona tão bem, não há necessidade de testá-lo!").

Por isso - a menos que 90% do seu dia de trabalho esteja fazendo mudanças muito pequenas - é um hábito perfeitamente bom ter. Se o seu dia de trabalho é assim, então talvez você queira rever seu estilo de trabalho (ou local de trabalho).

    
por 01.08.2014 / 17:44
fonte
4

Isso depende do domínio. Para o layout de uma página da web, ela funcionará bem e você poderá obter um retorno imediato (você pode até mesmo fazer isso diretamente no navegador!). Da mesma forma, funcionaria bem para qualquer coisa que não precisasse de muito tempo para inicializar. Isso é preferível, pois mantém a carga mental baixa e reduz a possibilidade de erros.

No entanto, para projetos realmente grandes em que é necessário compilar o código e o tempo gasto não é trivial (vários minutos), isso pode resultar em muito tempo ocioso, por isso você precisa recorrer a:

  • "paralelizar" seu fluxo de trabalho (por exemplo, trabalhar em várias compilações simultaneamente) ou
  • faça o máximo possível de uma só vez ou
  • crie uma pequena parte independente para trabalhar e integrar no projeto maior mais tarde.

(Existem provavelmente outras formas também.)

    
por 01.08.2014 / 19:49
fonte
0

Como outros afirmaram, isso definitivamente não é um mau hábito. Eu geralmente prefiro fazer apenas algumas modificações de uma só vez. A única exceção é se eu tiver uma grande lista de alterações que não afetam uma à outra (por exemplo, alterações em estilos menores ou cópia, alterações em páginas diferentes, etc). Se você estiver modificando layouts, atenha-se a fazer alterações uma por vez para poder verificar se tudo está 100% em todos os navegadores compatíveis antes de passar para a próxima edição.

    
por 01.08.2014 / 18:23
fonte