Lorsque je commence un nouveau projet, je commence souvent à penser immédiatement aux détails de la mise en œuvre. "Où vais-je placer DataBaseHandler? Comment dois-je l'utiliser? Les classes qui veulent l'utiliser doivent-elles s'étendre à partir d'une superclasse abstraite ..? Devrais-je utiliser une interface? Quel niveau d'abstraction vais-je utiliser dans ma classe qui contient méthodes d'envoi de requêtes et d'analyse de données? "
Je finis par caler pendant un long moment parce que je veux coder pour l'extensibilité et la réutilisabilité. Mais j'estime presque impossible de dépasser la réflexion sur la mise en œuvre parfaite.
Et puis, si j'essaie juste de dire "vissez, faites-le juste!", Je me suis heurté à un mur de briques assez rapidement parce que mon code n'est pas organisé, j'ai mélangé des niveaux d'abstractions, etc.
Quelles sont les techniques / méthodes que vous avez pour vous lancer dans un nouveau projet tout en mettant en place une structure logique / modulaire qui s'adapte bien?
- - EDIT - -
Eh bien, c’est déjà le type de question à laquelle il est difficile d’accepter une réponse, mais je voulais obtenir plus de commentaires, voir s’il ya un consensus. TDD semble vraiment cool et, franchement, je voulais me familiariser davantage avec JUnit, etc. En même temps, que pensent les fans de TDD du fait qu’un point légitime en rapport avec la résolution de TDD problèmes particuliers, c’est que le TDD ne semble pas vraiment aborder la question du design. Bien sûr, je conviens que TDD m'aidera à définir ce que je veux faire et que je pourrai ensuite analyser le comment, mais il existe de nombreux modèles / structures de conception globale qui pourraient tous passer par les tests unitaires. C'est juste ça: il teste des unités simples. Je suppose que je suis un peu confus ... Je ne sais pas. Peut-être que je'
Merci!