Separazione del database, dell'API e dell'interfaccia

2

La maggior parte dei miei progetti inizia in piccolo. Molte volte comincio con una pagina web (1 file) che ha il codice per ...

seleziona elementi dal database = > visualizzalo all'utente e offri la modifica = > ricevere le modifiche (a volte abbastanza complesse da richiedere l'analisi) = > aggiorna il database

tutto questo in 1 file, ovviamente. Con la crescita del progetto diventa sempre fastidioso avere così tanto codice in una pila, il 50% di dichiarazioni diif.

Domanda : che cos'è un buon, comprovato e amp; separazione dei dati intuitiva? Immagino che sto cercando un diagramma che spieghi quale codice va in quale file.

Vorrei mantenere questo linguaggio indipendente, ma nel caso abbia importanza sto usando PHP e MySQL.

    
posta Mikhail 14.07.2011 - 05:52
fonte

3 risposte

3

Ciò di cui stai parlando è l'archiecture n-Tier. Il seguente articolo utilizza .NET come esempio, ma le basi sono le stesse per qualsiasi lingua / piattaforma.

link

    
risposta data 14.07.2011 - 07:04
fonte
2

Hai provato a lavorare con un framework MVC. Prima ero in situazioni simili, dove avere cose in un file ha reso difficile gestirle man mano che il progetto si ingrandiva.

Se si sospetta che il progetto cresca in fase, iniziare con un metodo framework Model-View-Controller. Puoi crearne di tuoi o iniziare con quadri già esistenti. Per PHP - CakePHP e CodeIgniter sono due framework popolari.

Il metodo MVC seguente dovrebbe rendere il tuo codice più facile da gestire e ridimensionare man mano che il progetto si ingrandisce.

Buona fortuna

    
risposta data 14.07.2011 - 08:33
fonte
2

Non c'è niente di sbagliato nell'iniziare con un singolo file contenente tutto il codice se il progetto è molto piccolo. Surfer513 ha indicato un buon articolo che spiega l'architettura n-Tier. Come vai da dove sei lì?

La risposta a questo è il refactoring. Una volta arrivato al punto in cui un singolo file diventa goffo o ingestibile, è necessario iniziare a separarlo in pezzi. C'è un ottimo libro sul refactoring di Martin Fowler. Quel libro si occupa principalmente di programmazione orientata agli oggetti, ma i principi si applicano lo stesso.

Il primo passo è spesso separare il display dal resto. Nella lingua di MVC, il codice di visualizzazione è la vista (in un'applicazione Web in PHP, potrebbero essere modelli HTML e CSS). Per le applicazioni PHP puoi utilizzare un motore di template come smarty .

Il passo successivo è spesso quello di separare la logica aziendale effettiva dal livello di accesso ai dati. Questo è generalmente anche un buon momento per iniziare a pensare all'utilizzo di OOP (se il codice non lo sta già utilizzando), poiché ciò consente di raggruppare facilmente le funzionalità che appartengono insieme e separarle da altre funzionalità, oltre al riutilizzo del codice.

Dopo avremo probabilmente una buona idea su quali dovrebbero essere i prossimi passi. Questa non è una situazione "taglia unica", ogni progetto deve sviluppare la propria struttura e architettura nel tempo, a seconda delle sue particolari esigenze.

    
risposta data 14.07.2011 - 12:59
fonte

Leggi altre domande sui tag