progettazione web application

Da sempre mi occupo di progettazione e realizzazione di CMS e Web Applications in generale e, devo dire, che è un lavoro davvero interessante e stimolante. Oggi voglio sottolineare la grande importanza che ha la fase di analisi nella progettazione di una web application.

Uno degli errori più gravi che commette un giovane web developer con poca esperienza è quello di non preoccuparsi di analizzare con grande cura tutto quello che riguarda la web application che deve sviluppare. Inizia a scrivere righe e righe di codice ma questo lo porterà molto presto ad incappare nei primi problemi, giusto per fare qualche esempio:

– Non ha previsto qualcosa
– Ha dimenticato qualcosa di importante
– Deve riscrivere codice poichè funzionante ma l’obiettivo era leggermente diverso
– Non ha adottato la tecnica OOP e non ha previsto la “modularizzazione dell’applicazione”, un errore di progettazione, lo costringerà probabilmente a dover rivedere l’intera applicazione

Un programmatore viene in genere indicato come “analista programmatore” per un motivo ben preciso: non si occupa di scrivere codice soltanto ma bensì di analizzare un problema (o l’esigenza di un cliente), individuare la soluzione per poi implementare il progetto “funzionante” attraverso la stesura del codice. Nella fase di analisi nulla deve essere lasciato al caso, tutto deve essere previsto, per ogni problema deve essere stata trovata la soluzione più opportuna e performante.

Un consiglio che mi sento di dare è quello di adottare il pattern MVC per l’architettura dell’applicazione e di aiutarsi con tabelle e modelli E/R per la progettazione e realizzazione del database. Scrivere una documentazione dettagliata durante la fase di analisi è un dovere “verso se stessi” perchè, in futuro, alcuni concetti dell’applicazione potrebbero andare dimenticati ed è opportuno avere sempre a disposizione documenti che descrivano tutti gli aspetti e i comportamenti dell’applicazione in modo chiaro.

Un altro consiglio che mi sento di dare è quello di prevedere che l’applicazione sia “modulare“. Suddividere l’applicazione in moduli agevolerà la manutenzione del codice. Pensiamo, ad esempio, a un futuro dove sarà necessario modificare la parte dell’applicazione che si occupa di gestire la pubblicazione di news. Avere la possibilità di lavorare al modulo “news” (che conterrà i files necessari al suo funzionamento: inserimento, modifica, cancellazione, ricerca, visualizzazione) ci permetterà di ottimizzare i tempi delle modifiche senza dover intervenire in tutti i files dell’applicazione. Magari prevedere un modulo “plugins” per la gestione automatizzata dei vari moduli sarebbe una funzionalità che renderebbe la nostra applicazione a dir poco eccellente dal punto di vista degli aggiornamenti e dell’espansione delle funzionalità.

Ultimo consiglio, nella fase di analisi, ritengo un fattore di grande importanza quello di prevedere un “core” con cui sviluppare l’intera applicazione. Con core intendo una serie di classi/oggetti che si occuperanno della gestione delle situazioni critiche e degli aspetti fondamentali per il funzionamento dell’applicazione. Ad esempio:

– una classe “database” per le interazioni col database
– una classe “ftp” per la gestione dei files via ftp
– una classe “session” per la gestione delle sessioni utente

Più altre classi personalizzate per compiti specifici. Più è elevata la qualità del core più ne beneficerà il programmatore durante la stesura del codice. Adottare un approccio “object oriented” permette, inoltre, di rendere il codice “riutilizzabile” e offre la possibilità di modificare i comportamenti “interni” senza dover intervenire sull’interfaccia.

NO SPAM. Non fornirò la tua email a terzi e riceverai solo contenuti che ti interessano sugli argomenti che tratto e potrai cancellarti quando vuoi con un link che trovi in tutte le email.