Sto progettando una libreria di classi che rappresenti concetti di teoria musicale occidentale con temperamento equabile allo scopo di comporre musica con codice notata (mi rendo conto che ci sono altre librerie e programmi per questo, ma voglio progettare il mio). Il problema che sto affrontando è che quando comincio con il concetto più fondamentale (PitchClass) e inizi a crescere, mi ritrovo molto rapidamente fuori controllo con troppa complessità nella progettazione. Finisco per rottamarlo e ricominciare da capo.
Sto pensando a un nuovo approccio. Inizia scrivendo un programma (che non verrà compilato) che dimostra come voglio usare la libreria alla fine. Ad esempio, scrivi i programmi di esempio che potrebbero accompagnare prima una libreria, come parte del processo di progettazione. Spero che ciò possa aiutarmi con le decisioni di progettazione di livello inferiore in modo da non perdere me stesso nella complessità del design.
Questo approccio è analogo alla progettazione basata su test, ma diverso in quanto il programma di esempio non è isolato in una singola classe o funzione, ma mostra invece l'interfaccia di molte classi di alto livello.
Domanda
La metodologia di progettazione top-down che sto descrivendo qui è un approccio valido? ha un nome? Sto lavorando da solo, ma i team usano mai un approccio come questo?
Questo non risponde alla domanda perché riguarda specificamente progettazione di un'interfaccia utente Web e gestione delle differenze tra i browser.
Questo non è rilevante perché riguarda il back-end rispetto alle specifiche front-end.
Questo non è un duplicato perché riguarda specificamente l'approccio a uno stack MVC.