Quando si crea un'applicazione da zero, dovrei iniziare con il modello orientato agli oggetti (OO) o il modello entità-relazione (ER)?
Quando si crea un'applicazione da zero, dovrei iniziare con il modello orientato agli oggetti (OO) o il modello entità-relazione (ER)?
Risposte:
Potresti voler provare ad osservare il principio di ritardare le decisioni architettoniche il più a lungo possibile. Il pensiero è che in futuro saprai di più sul tuo dominio problematico di quanto tu non faccia ora, quindi ogni decisione che prendi oggi è sospetta.
Un altro buon principio da abbinare a questo potrebbe essere quello di provare prima a tentare le parti più rischiose delle vostre esigenze - il pensiero è che se si eseguono le parti facili, quindi si scopre che le parti rischiose si muovono in una direzione diversa, non si ha per rifare le parti facili. Qui rischioso significa cose che non sei sicuro di come dovresti fare.
Dati questi due, e dato che provo spesso ad avvicinarmi alle cose da una prospettiva OO, potresti provare a iniziare con un modello OO delle parti più rischiose della tua applicazione e implementare una quantità minima possibile di codice che possa funzionare che soddisfi il requisiti rischiosi. Quindi, inizia ad espandere il tuo modello OO secondo necessità per aggiungere funzionalità che ti serviranno. Nel frattempo, puoi ritardare completamente la tua decisione sull'utilizzo di SQL o NoSQL o flatfile o cloud storage o altro ... e potresti eventualmente scoprire che non vuoi affatto relazionale (ovviando alla necessità di un modello ER).
Il modello ER determina la modalità di persistenza dei dati dell'applicazione e il modello OO decide come archiviare gli stessi dati in memoria o durante l'esecuzione dell'applicazione. Pertanto, la progettazione dello schema del database (modello ER) e la progettazione della struttura di classe (modello OO) sono considerazioni relative alla progettazione e di solito possono anche essere pensate contemporaneamente. In effetti, se si utilizza uno strumento ORM (Object-relational mapping) , il modello ER e il modello OO potrebbero essere la stessa cosa. In altre parole, le tue classi (modello OO) possono essere annotate in modo tale che esse stesse specificano il modello ER.
Prima di progettare, però, assicurati di avere un'ottima idea dei requisiti effettivi del software, per cosa verrà utilizzato, come verrà utilizzato e chi lo utilizzerà. Molti sviluppatori iniziano a pensare alle decisioni di progettazione prima di comprendere appieno le esigenze che devono essere affrontate dal prodotto e finiscono con un design inadatto al vero scopo dell'applicazione.