Dividi il tuo progetto in fasi

by Francesco on settembre 30, 2008

Analisi, Progettazione, Implementazione, Test. Queste grosso modo sono le fasi evolutive del ciclo del software tradizionale. Ora la cosa importante è non pensare che queste fasi siano una susseguente all’altra, cioè una di seguito all’altra. No. La strada migliore è immaginare che si svolgano “in parallelo”.

Ti chiederai come far svolgere in parallelo queste fasi quando sai bene se implementi non testi il codice, e se progetti il software non lo implementi. E’ tutto vero quello che dici ma grazie alla agile programming (e se sei in team grazie anche all’eXtreme Programming) potrai davvero realizzare quanto scrivo.

La prima cosa importante, per tornare alla nostra regola 80/20 è strutturare le fasi in modo da minimizzare il tuo intervento. Ad esempio per la modellazione di database uso frequentemente  fabforce dbDesigner 4 perchè  è molto comodo. Disegni la struttura e quando hai finito hai un file per MySql pronto all’uso. E se non usi MySql come database in produzione, grazie ad Ant e un foglio di stile XSLT che ho sviluppato ad hoc posso trasformare il database disegnato ad esempio in formato Microsoft Sql Server.

Per quanto riguarda l’ambiente di sviluppo per la scrittura del codice e per il testing ai più pigri consiglio di usare Eclipse. Eclipse è un IDE Open Source nato da milioni di righe donate da IBM alla comunità di sviluppatori costruita attorno al progetto. Eclipse è un pò “peso”da eseguire ma comodo e flessibile. Puoi usare Eclipse per tutti i linguaggi a disposizione oggi, dal C al Java passando per PHP, Perl, Python, Ruby e altri. Una sola interfaccia quando ti approcci a sistemi diversi è comoda: eviti di perdere tempo ogni volta a imparare i tasti freccia e le scorciatoie.

Se poi vuoi davvero ottimizzare il tuo tempo ed evitare notti insonni a debuggare il codice, l’utilizzo di strumenti di test unitari ti aiuterà parecchio. Mentre molti prima scrivono il software e poi lo testano (a mano?), con i test unitari via via che scrivi il software scrivi anche dei casi di test per testare ogni singolo pezzo di software prodotto. E questo ti permette due vantaggi non indifferenti:

  1. individui subito qual’è la parte “malata” del software da correggere e mettere a posto;
  2. puoi automatizzare il test del software in maniera ciclica ad esempio ogni mezz’ora con la continous integration

Per ora mi fermo qui. Della continous integration parleremo nei prossimi post.

Leave a Comment

Previous post:

Next post: