Teste é Driven Development boa para uma partida? [fechadas]
-
02-07-2019 - |
Pergunta
Expansão esta pergunta sobre como eu aprendi a passar de ao código Duas pessoas mencionadas TDD.
Seria bom para uma iniciação para entrar em TDD (e evitar maus hábitos no futuro?) Ou seria demasiado complexo para uma fase em que entender o que é uma linguagem de programação é?
Solução
TDD é para ser mais simples do que o método "tradicional" (de não testá-lo até o fim) - porque os testes esclarecer o que você entende do problema. Se você realmente não tem uma idéia clara de qual era o problema, escrever testes é bastante difícil.
Assim, para um iniciante, escrever testes recebe o suco de pensamento indo na direção certa, o que é um comportamento contratual, não o comportamento de implementação.
Outras dicas
Desejo TDD estavam ao redor quando eu estava aprendendo a programa, e que eu tinha o pegou antes de ficar tão arraigada no 'caminho velho' de tal forma que é muito difícil para mim aprender TDD ...
Experimentando TDD Regras Todos
Eu também acho que o ideal seria TDD seria muito útil nas fases iniciais de aprendizagem. Em retrospectiva eu ??sei que seria de me ajudou a aproximar os problemas sob uma luz completamente diferente.
O que eu estou perplexo sobre é que quando alguém está aprendendo, há tantos novos conceitos que estão sendo absorvidos que a confusão pode começar a definir muito cedo. Portanto, enquanto eu acho que TDD seria super útil, eu não acho que isso pode ser algo que aprendeu com sucesso por si mesmo.
Assim como qualquer outra coisa na vida que tendem a aprender melhor quando alguém está ensinando nós fisicamente. Mostrando-nos como eles abordam os problemas de uma forma TDD pode fazer muito mais do que ler sobre isso em livros ou na web. Quer dizer, isso não pode ferir, mas não é um substituto para um mentor que pode realmente mostrar-lhe as cordas.
Experimentando TDD é tudo isso, se você pode ter alguém ensiná-lo a TDD durante os estágios iniciais, eu acho que aprender como um todo seria acelerado além do que qualquer um esperar.
def self.learn_tdd_and_programming_together?
if you_have_tdd_mentor_sitting_next_to_you?
"go for it"
else
if language.ruby?
"it's possible, there is quite a bit of good stuff out
there that could give you a chance of learning programming
with TDD from the start. It's sort of in the ruby culture"
elsif language.dot_net?
"learn TDD after you learn the basics of .NET"
end
end
end
é certamente uma responsabilidade muito grande, mas tendo dito que eu desejo que eu comecei a escrever testes de unidade. O que realmente tem sido bom era se eu tivesse um mentor no meu local de trabalho que poderia ter guiado o meu progresso TDD. Estive auto TDD aprendizagem e fora por cerca de um ano e não há muito a cobertura e quanto mais você fazê-lo o mais envolvido ele ganha, mas é realmente começando a dar frutos agora para mim.
Meu lema programação é:
- Faça-o funcionar - o programa resolve o problema
- Faça isso direito - o programa foi concebido de forma limpa e há uma pequena quantidade de duplicação
- Faça isso rápido - otimizado (se necessário)
Test Driven Development lida com os dois primeiros.
Eu acho que um novato deve ser ensinado TDD para que ele sabe como fazer programas executados. IMHO, só então pode boas técnicas de design de ser ensinado.
Eu acho que sim. Estudos ainda descobriram que os benefícios são maior para iniciantes . Dá-lhe mais orientação para escrever o código. Você sabe o que os resultados e comportamento deve ser, e escrever os testes. Então você escrever o código. testes passar. Você está feito. E você sabe que está feito.
Sim! Definitivamente.
Eu acho que não é bom para alguém apenas aprender programação. Como é que essa pessoa sabe o que assert? : P TDD é de concepção, não para o teste. Quando uma pessoa sabe como programa, vai ser uma coisa boa para começar studiying a abordagem TDD.
Primeiro você precisa entender como código bem. Leia, estudo e prática que até que você tenha um bom controle sobre ele. Uma vez que você tem isso, olhar para design orientado teste -. É muito poderoso
Um benefício importante de TDD é a definição de cozimento. Na programação algorítmica simples, se você chegar a um cenários de casal onde correção é facilmente afirmado, a sua fácil de enumerá-los em um teste de unidade e manter a codificação até que todo o trabalho.
Às vezes o teste de unidade pode ser difícil para iniciantes, se há muitas dependências e você começa a correr em cenários onde zombando objetos é necessário.
No entanto, se você pode fazer uma simples declaração sobre a exatidão, e é fácil de digitar, então definitivamente escrevê-lo no código.
Você também pode notar que, se uma simples declaração de correção não é facilmente descrito, você pode não entender completamente o seu problema.
Boa sorte ...
Ela realmente depende de sua definição de uma "arranque". Se por "arranque" Você é alguém média com absolutamente nenhuma experiência em programação, então não, eu não acho que TDD é uma boa maneira de começar. Um programador precisa aprender o básico (evitando loops infinitos, de alocação de memória, etc.) antes de se preocupar com refatoração e desenvolvimento orientado a testes.
código é o código se é a coisa que você está tentando pico fora, ou um teste.
Aprendizagem TDD no início tem um monte de valor. É uma daquelas habilidades que devem ser um hábito. Há um monte de gente lá fora que entender e como o valor de TDD, mas anos de programação têm incutido algumas alguns hábitos que podem ser difícil de quebrar mais tarde.
Tanto quanto TDD sendo para a implementação contrato de concepção / code / testando é todas essas coisas. Vai TDD trazê-lo para o código perfeito? Não, experiência e estudar a embarcação irá ajudá-lo a amadurecer suas abordagens de codificação. Mas TDD é uma ferramenta muito importante para todos os desenvolvedores.
O uso de TDD, esperamos ajudar a trazê-lo para um projeto que é testável. E um design que é testável é, em teoria, bem encapsulados e devem aderir ao principal fechado aberto.
Na minha opinião, desde que as pessoas vêem TDD como algo que é uma ferramenta de nicho ou é de alguma forma opcional ao escrever código, essas pessoas obviamente não obter o valor de TDD.