Quando inizio un nuovo progetto, spesso inizio immediatamente a pensare ai dettagli dell'implementazione. "Dove inserirò DataBaseHandler? Come dovrei usarlo? Le classi che vogliono usarlo dovrebbero estendersi da qualche superclasse astratta ...? Dovrei usare un'interfaccia? Quale livello di astrazione userò nella mia classe che contiene metodi per inviare richieste e analizzare dati? "
Finisco per un lungo periodo di stallo perché voglio programmare estensibilità e riusabilità. Ma mi sembra quasi impossibile superare il pensiero di come implementarlo perfettamente.
E poi, se provo solo a dire "fanculo, fallo!", Colpisco un muro di mattoni abbastanza rapidamente perché il mio codice non è organizzato, mischio livelli di astrazioni, ecc.
Quali sono alcune tecniche / metodi che hai per lanciarti in un nuovo progetto e allo stesso tempo creare una struttura logica / modulare che si ridimensionerà bene?
- - MODIFICA - -
Bene, questo è già il tipo di domanda a cui è difficile accettare una risposta, ma voleva ottenere un feedback in più, vedere se c'è un consenso. TDD sembra davvero bello e, francamente, intendevo ottenere più veloce usando JUnit, ecc. Allo stesso tempo, cosa pensano i fan di TDD del fatto che un punto legittimo in relazione a TDD risolve il mio problemi particolari, è che TDD non sembra davvero affrontare la questione del design. Certo, sono d'accordo che TDD mi aiuterà a definire ciò che voglio fare e quindi posso gradualmente esaminare il come, ma ci sono molti diversi modelli / strutture di progettazione generali che potrebbero passare attraverso i test unitari. Questo è tutto: testa singole UNITÀ. Immagino di essere un po 'confuso ... Non lo so. Forse io'
Grazie!