Come organizzare un progetto software

Questo è il post #4 di 12 nella serie “Fondamenti di Programmazione 101

Progetti Software e Come Organizzare il Nostro Codice

Come organizzare il codice è una parte molto importante nel processo di sviluppo del software specialmente nel contesto della manutenibilità del codice.

Perché è così importante l’organizzazione del nostro codice? In parole povere, in qualità di sviluppatori, spendiamo gran parte del nostro tempo a leggere, scrivere e modificare codice e di conseguenza l’organizzazione del codice è di vitale importanza.

Una delle tecniche più efficaci per organizzare il nostro codice è quella di distribuirlo in blocchi logici.

In particolar modo, quando si parla di persone nuove allo sviluppo del software, la precedente frase è molto più facili da dirsi che a farsi.

Ci sono parti del nostro codice che, da un punto di vista logico, fanno parte dello stesso blocco e dobbiamo tenerlo in considerazione quando decidiamo come divide il codice in blocchi logici.

Spesso, si usa il termine modulo per identificare questi blocchi logici.

Da tenere in considerazione, che diversi linguaggi di programmazione posso dare al termine modulo dei significati leggermente diversi e anche in linguaggi dove questo termine non esiste completamente, il concetto che esprime rimane valido.

Uno dei vantaggi nell’avere questi blocchi di codice indipendenti è sicuramente quello della riusabilità.

Un altro vantaggio molto importante è quello che possiamo racchiudere all’interno di questi blocchi del codice che svolga una determinata funzionalità e utilizzarlo in vari parti dell’applicazione o anche in applicazioni differenti, se e quando avremo la necessità di apportare una modifica, basterà modificare il codice all’interno del modulo, e solo quello, e la modifica sarà applicata in ogni punto dove quel pezzo di codice all’interno del modulo è stato utilizzato.

Lavorare con progetti software

Cosa intendiamo con la definizione di progetto software? Solitamente identifichiamo un progetto software come l’insieme del suo code base (cioè tutto il codice software prodotto), composto da uno o più moduli e abbiamo bisogno di un modo per dire al compilatore o all’interprete di trovare tutti i files coinvolti, assemblarli in modo che possano essere compresi, interpretati ed eseguiti. Uno dei tools più avanzati che possiamo utilizzare per eseguire il task descritto è un Integrated Development Environment o meglio conosciuto con l’acronimo di IDE.

Importanza dei packages per condividere il codice

Nella cultura degli sviluppatori software, condividere il codice gratuitamente è una cosa abbastanza naturale e allo stesso tempo, rende questo settore decisamente unico in quanto i programmatori condividono e usano il codice di altri programmatori.

Questa modo di produrre e condividere codice ha diversi vantaggi, per esempio, il codice è spesso ben testato perché ci è una community che si occupa di testare e fixare eventuali problemi che possono emergere.

Ma, in quanto sviluppatori software, come possiamo sfruttare tutto ciò a nostro vantaggio?

Package Managers

La risposta alla nostra ultima domanda è, un package manager.

Un package manager è un software che ci aiuterà a trovare, scaricare ed installare codice.

Funziona salvando moduli di codice, a cui ci riferiamo come packages, in una data locazione. Questo storage centrale è chiamato repository o semplicemente repo.

Vediamo una lista dei package managers più utilizzati sulla base del linguaggio di programmazione di riferimento.

LinguaggioPackage ManagerRepository
JavaMavenhttps://mvnrepository.com/
PythonPiphttps://pypi.org/
RubyRubyGemshttps://rubygems.org/
PHPComposerhttps://packagist.org/
NodeNpmhttps://www.npmjs.com/
.NetNuGethttps://www.nuget.org/