Quando inicio um novo projeto, muitas vezes começo imediatamente a pensar nos detalhes da implementação. "Onde vou colocar o DataBaseHandler? Como devo usá-lo? As classes que desejam usá-lo estendem-se a partir de uma superclasse Abstract ...? Devo usar uma interface? Que nível de abstração vou usar na minha classe que contém métodos para enviar solicitações e analisar dados? "
Acabo parando por um longo tempo porque quero codificar a extensibilidade e a reutilização. Mas acho quase impossível deixar de pensar em como implementar perfeitamente.
E então, se eu tentar apenas dizer "dane-se, basta fazê-lo!", Bati rapidamente em uma parede de tijolos porque meu código não está organizado, misturei níveis de abstração etc.
Quais são algumas técnicas / métodos que você tem para iniciar um novo projeto enquanto também configura uma estrutura lógica / modular que será bem dimensionada?
- - EDITAR - -
Bem, esse já é o tipo de pergunta difícil de ser respondida, mas queria obter mais feedback, veja se há algum consenso. O TDD parece muito legal e, francamente, eu pretendo acelerar o uso do JUnit, etc. Ao mesmo tempo, o que os fãs do TDD pensam sobre o fato de que um ponto legítimo em relação ao TDD é a solução? questões particulares, é que o TDD não parece realmente abordar a questão do design. Certamente, eu concordo que o TDD me ajudará a definir o que eu quero fazer e, em seguida, poderei trabalhar gradualmente no how, mas existem muitos padrões / estruturas gerais de design diferentes que podem passar pelo teste de unidade. É isso mesmo: ele testa UNIDADES únicas. Acho que estou um pouco confuso ... não sei. Talvez eu'
Obrigado!