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 é?

Foi útil?

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.

Eu acho que isso ilustra que pode ser uma coisa muito boa para iniciantes para aprender-se em linha reta.

Meu lema programação é:

  1. Faça-o funcionar - o programa resolve o problema
  2. Faça isso direito - o programa foi concebido de forma limpa e há uma pequena quantidade de duplicação
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top