Penso che molte persone provino a ingegnerizzare le soluzioni.
Prendono l'approccio "Adam & Eve" quando solo un po 'di più
quello pratico semplificherebbe molto le cose.
Le lezioni specializzate non sono malvagie, sono naturali
conseguenza del design del software sonoro.
Molti programmatori, a mio parere, non riescono a capire questo e
non esiste un libro che io conosca che lo renda chiaro.
Un'altra cosa che sicuramente aiuta è TDD, che ti permette
capire "come" userete la classe nella pratica e potete farlo
molti casi salvano il giorno, perché mostra eventuali problemi / limitazioni
all'inizio della giornata.
Infine, un'altra cosa MOLTO importante che cercherò se fossi in te sono gli schemi di progettazione.
I modelli di progettazione sono il modo in cui le persone più intelligenti di te o me risolvono i problemi di programmazione.
L'idea dietro i modelli, indovina un po '?, è che non devono essere usati come libri di cucina,
ricette che semplicemente sbatti lì, ma pensierosamente e capendo il tuo
prima e soprattutto il dominio delle applicazioni.
Un uso saggio del modello ridurrà notevolmente la quantità di dettagli che devi gestire.
Una buona libreria di modelli di design progettata attorno alle tue stesse esigenze, si rivelerà preziosa.
Vediamo un esempio molto semplice solo per mettere le cose nel loro contesto:
Immagina di avere un modulo in cui, quando viene premuto un pulsante, altri moduli devono essere aggiornati
loro stessi. Questo è un tipico schema di "osservatore". Hai un soggetto e diversi
osservatori, che si registrano con il soggetto.
Perché hai bisogno di implementare un'interfaccia? Puoi semplicemente aggiungere i metodi, o
meglio ancora, usa un'interfaccia per gli osservatori e un elenco generico per il soggetto.
Ora hai il meglio di entrambi i mondi: indipendenza per gli osservatori e no
cose whuzzy-whazzy sull'argomento.
Spero che abbia senso per te!
Andrea