Sviluppo web
Nov 16, 2015
BY MIGUEL VILATA

Guida di sopravvivenza per programmatori moderni

Home > Sviluppo web > Guida di sopravvivenza per programmatori moderni
Ne è passata di acqua sotto i ponti da quando ci si metteva a programmare "a mani nude". Bastava arrivare in ufficio, aprire un semplice editor di testo e mettersi a “battere” il codice. In un mondo dove le applicazioni web cominciavano appena a muovere i primi passi e non era necessario conoscerle bene, le esigenze erano molto diverse.

Quei tempi non torneranno e, benché possiamo ricordarli con una punta di nostalgia, non sono stati migliori di quelli odierni. Oggi viviamo in un mondo molto più professionale: i team di sviluppo contano su un bagaglio di conoscenze multidisciplinari e sono in grado di fornire soluzioni per esigenze molto complesse.

Questo articolo offre una panoramica di alcuni dei metodi e delle tecnologie che ogni team di sviluppo dovrebbe conoscere o proporsi di utilizzare per sopravvivere nel XXI secolo.

Uso di framework

Un framework di sviluppo è un insieme di componenti che implementano funzioni utili nella costruzione di applicazioni.

Grazie a una serie di modelli e tecniche, i framework favoriscono le buone pratiche nella programmazione, il riutilizzo del codice e la realizzazione di applicazioni omogenee. Permettono ai programmatori di non perdere tempo a "reinventare la ruota", come si dice, perché risolvono alcuni dei problemi più comuni in fase di sviluppo, per esempio la gestione delle richieste, l'invio dei dati ai template, gli aspetti relativi alla sicurezza o il caricamento dei parametri nelle URL.

Molto conosciuti e utilizzati da anni nel mondo delle applicazioni desktop, sono approdati nel web solo successivamente, ma tutto lascia pensare che resteranno. L'uso di un framework consente di produrre un codice più pulito e strutturato, oltre che di riutilizzare pacchetti di codice, proprietario o creato da terzi, con la massima rapidità e facilità, così noi programmatori possiamo dedicare tutta la nostra attenzione a risolvere le problematiche del cliente.

Inoltre, poiché il framework è caratterizzato da una struttura unitaria, coerente e riconoscibile, risulta molto più agevole coinvolgere altri professionisti nel progetto e gestire la fase di transizione.

Insomma, ormai anche noi “master chef" dell'informatica usiamo i framework e la retorica del "when men were men and wrote their own device drivers" appartiene ormai al passato, almeno nello sviluppo web.


Refactoring e testing

Il refactoring e il testing sono due elementi essenziali per sviluppare un'applicazione di alta qualità.

Il refactoring è una fase di manutenzione durante la quale si analizza il codice e, se necessario, si modifica la struttura e si elimina il superfluo con l'obiettivo di incrementare la coerenza e agevolare la manutenibilità, minimizzandone i costi futuri.

Affinché il refactoring e l'implementazione di nuove funzionalità siano sicuri, è necessario che il codice integri una batteria di test che ne garantiscano l'integrità.

A mio avviso, l'opzione migliore è effettuare il refactoring e scrivere i test man mano che si sviluppa l'applicazione, che, in questo modo, sarà sempre pronta a passare in produzione senza alcun problema.

Il refactoring e il testing sono spesso i grandi assenti nello sviluppo moderno, perché non sempre se ne colgono l'importanza e il valore aggiunto che apportano al software.

Almeno fino a quando qualcuno non inserisce un paio di bug nel lavoro dei colleghi, ovvio.

Installazione delle applicazioni

L'installazione delle applicazioni web rappresenta un capitolo a sé nella gestione del ciclo di sviluppo. In questa fase possono presentarsi situazioni molto diverse, da un’installazione semplice su un solo server a scenari con installazione su vari server, con CDN diversi, load balancing, ecc.,

Sono disponibili programmi specifici che aggiornano i cambiamenti necessari in modo rapido e semplice. Se fai ancora gli aggiornamenti tramite FTP, devi proprio ripensarci.

Controllo di versione

Un sistema di controllo di versione è un "must" per tutti i team di sviluppo. Anche se a lavorare fosse un solo sviluppatore, sarebbe comunque necessario utilizzare uno dei sistemi di controllo di versione disponibili.

Perché? Perché questo ci consente di riportare il lavoro a una fase precedente, confrontare le modifiche, visualizzare i cambiamenti apportati da ciascun utente, oltre che lavorare in team da svariate sedi, gestire diverse diramazioni di sviluppo, condividere codice, ecc.

L'obiettivo è controllare integralmente il progetto e le sue versioni, e non vedere più programmatori che si strappano i capelli urlando "Chi ha distrutto il mio codiceee?"

Metodologie agili

In un ambiente molto concorrenziale e mutevole, è importante che lo sviluppo software si adatti facilmente alle circostanze: le metodologie agili favoriscono la comunicazione con il cliente, l'adattamento ai cambiamenti e la consegna di un software funzionante.

Integrandole nel team di sviluppo, avrai una descrizione dettagliata e chiara delle funzionalità da sviluppare, con una valutazione operata dal team. Questo ti consentirà di proseguire senza incertezze nella direzione indicata dal cliente, incaricato di approvare i deliverable inviati periodicamente.

Non ti ho convinto? L'alternativa è avere un team di programmatori che lavora per mesi, senza specifiche dettagliate e senza alcuna approvazione da parte del cliente. Durante l'ultima settimana di lavoro, assisterai alla famosa "dead march": come nella migliore tradizione dei film di zombie, i programmatori si aggireranno disperati per l'ufficio, con tanto di occhiaie, domandandosi perché non si sono dati a vendere panini o a servire caffè, mentre il cliente, impassibile, ripeterà all'infinito: “Non avevo chiesto questo". Ti assicuro che neppure i film dell'orrore più riusciti fanno così tanta paura.

Virtualizzazione

Numerosi team di sviluppo oggi lavorano con una pluralità di tecnologie e applicativi caratterizzati da dipendenze e requisiti diversi. Occorrono quindi sistemi che consentano di operare in maniera unitaria nell'intero ecosistema. La soluzione ad alcuni di questi problemi viene dai sistemi di virtualizzazione.

I principali vantaggi di un ambiente di sviluppo software virtualizzato sono:

            ● separare l'ambiente di sviluppo dalla configurazione della macchina host;

            ● agevolare il lavoro su progetti con dipendenze diverse; 


            ● coinvolgere facilmente altri professionisti nel progetto, indipendentemente dal sistema operativo utilizzato. 


            ● fornire a tutti i membri del team un unico ambiente di esecuzione dell’applicazione da sviluppare. 
Utilizzando questa tecnologia, possiamo affrontare progetti con requisiti diversi e coinvolgere altri professionisti nel team rapidamente e senza difficoltà. Non fa nulla se non utilizzi nessuno di questi strumenti, però non lamentarti se qualcuno ti dice "Beh, nel mio team funziona!".

Come abbiamo visto, oggi i team di sviluppo devono saper utilizzare una varietà di tecnologie e metodi. Quei compiti che un tempo erano gestiti da figure come gli amministratori di sistema o i responsabili di progetto, oggi in molti casi sono responsabilità dei membri del team di programmazione. Non avvalersi degli strumenti moderni di sviluppo software implica un costo in termini di incremento del debito tecnico del team, che poi si traduce in un livello di qualità ed efficacia più basso.

Abbiamo passato in rassegna alcune delle caratteristiche dei team di sviluppo moderni. Nei prossimi post, approfondiremo ciascuno di questi aspetti, presentando il software che utilizziamo con esempi concreti tratti dall'attività lavorativa quotidiana.

views
453
All posts Next post >
La tua casella email
merita contenuti interessanti!

Iscriviti alla nostra newsletter per rimanere aggiornato su tutti gli ultimi trend del mondo digital.

Toc Toc. È ora di aggiornarsi.
La tua casella email
merita contenuti interessanti!

Iscriviti alla nostra newsletter per rimanere aggiornato su tutti gli ultimi trend del mondo digital.

No grazie. La mia casella email va bene così.
Articoli correlati
Sviluppo web

May 08, 2018

By Valentina de Grandis

Le 3 regole chiave per un web design di successo nel 2018

Sviluppo web

Apr 10, 2018

By Encarna Abellán

5 linee guida per costruire un sito B2B efficiente

Sviluppo web

Aug 02, 2016

By Marco Cabboi

Symfony, la piattaforma giusta per lo realizzazione del tuo sito web

Back to top