Browsing posts in: Development

Il metodo CI/CD

Nel contesto della metodologia Agile in ingegneria del software, la pratica CI/CD è considerata una best practice in quanto consente ai team di sviluppo software di concentrarsi sulla conformità ai requisiti aziendali, alla qualità del codice e alla sicurezza poiché le fasi di implementazione sono automatizzate. L’integrazione Continua (CI) e la Consegna Continua (CD) rappresentano una cultura, un insieme di principi operativi e una raccolta di pratiche che consentono ai team di sviluppo software di fornire modifiche al codice più frequentemente e in modo affidabile. L’implementazione è anche nota come pipeline CI / CD. Continue Reading


Programmazione per coincidenza

In un precedente articolo si è parlato di programmazione Cargo Cult, ovvero uno stile di programmazione secondo cui gli sviluppatori includono pezzi di codice nel loro programma senza conoscere né comprendere il ragionamento per cui quel codice deve essere incluso.
Programmare per coincidenza è un concetto introdotto e ben spiegato in un manuale, un classico che prima o poi deve essere letto e approfondito da ogni programmatore: Pragmatic Programmer. Se stiamo programmando per coincidenza,  significa in poche parole che non sappiamo cosa stiamo facendo. Il nostro codice si basa sulla fortuna e su un successo accidentale. Bisognerebbe sempre evitare la programmazione per coincidenza e preferire una programmazione “cosciente” e deliberata. Continue Reading


Gestire correttamente le dipendenze PHP con Composer

Il primo passo per costruire una pipeline di CD (Continuous Delivery) adeguata è gestire le dipendenze nel modo giusto. Se sei uno sviluppatore di PHP, è necessario padroneggiare Composer riuscire a fare ciò in maniera semplice ed immediata.

Cos’è Composer?

Composer è il gestore delle dipendenze per PHP e Packagist è il repository ufficiale dei pacchetti. Il rilascio di questo progetto nel 2012 ha rivoluzionato il mondo PHP perchè consente di definire tutte le librerie dalle quali l’applicazione dipende e di scaricare automaticamente queste librerie con un semplice comando. Composer risolve molti problemi, sai se la tua applicazione dipende da quali librerie e se queste librerie dipendono da altre librerie… L’uso di Composer e di un sistema di controllo della versione è il primo passo per costruire una pipeline CI/CD per PHP.

E’ richiesta la presenza di PHP sul sistema in cui è eseguito Composer. Si installa tramite un comodo installer che ti avvisa eventuali incompatibilità di versioni PHP. Composer è disponibile per varie piattaforme. Continue Reading


Quali differenze tra metodologia Agile, CI/CD e DevOps

Per fare un analogia, non si può costruire una casa usando un singolo attrezzo. CI / CD, Agile e DevOps sono tre termini comunemente utilizzati negli ambienti di sviluppo e test del software. Tuttavia, per capire la differenza tra loro, è meglio iniziare con cosa significano effettivamente questi termini. Agile, DevOps e CI / CD sono tre strumenti importanti, indipendenti che tuttavia si supportano a vicenda. Agile si concentra sul processo di sviluppo, CI / CD sulle pratiche e DevOps sulla cultura.

Riuscire ad applicarli assieme nelle proprie pratiche di sviluppo, produce delle trasformazioni e dei miglioramenti non di poco conto.

Continue Reading


Il “dramma” del valore NULL in SQL

Un database SQL consente, per qualsiasi tipo di dati, di avere un valore NULL. Il valore NULL non è lo stesso di una stringa vuota o di un numero intero uguale a zero. In parole povere significa “sconosciuto”: rappresenta quindi informazioni mancanti e informazioni inapplicabili.

Avere una stringa NULL, ad esempio, non equivale ad avere una stringa vuota. Significa che non sai cosa c’è nella stringa. Se stai facendo un database e in un record imposti il ​​valore NULL in un campo, significa che ancora non conosci il valore ma ciò non implica che il record non esista. NULL è uno stato, non un valore.

Continue Reading


Tipi di NAT: SNAT, DNAT e PAT

Agli albori di internet, i “padri” progettisti di Internet pensarono di utilizzare 32 bit per ciascun indirizzo IP, pensando che 4,2 miliardi di indirizzi disponibili bastassero a coprire qualsiasi host nel globo terrestre. In effetti, negli anni 80 Internet non era poi cosi esteso. Si pensi, ad esempio, che in Italia la prima connessione ad Internet tramite un computer avvenne solamente nel 1986. Dagli anni 90 in poi, Internet ha visto un incremento sempre costante di nuove connessioni grazie allo sviluppo del WWW e dei device mobili e le connessioni dati. Gli indirizzi IPv4 non erano più sufficienti a coprire il numero sempre più vasto di dispositivi in rete. Inoltre, la disponibilità di 4.294.967.296 (ovvero 2^32) è solamente un numero teorico, poichè esistono delle combinazioni di indirizzi IP riservati per usi specifici che gli ISP non potevano utilizzare.

Il motivo principale per cui è stata sviluppata la tecnologia NAT è stato quello di prevenire il rapido esaurimento degli indirizzi IPv4. NAT (Network Address Translation) consente a un dispositivo di rete (come un router, un firewall o un server che esegue sistemi operativi di rete come Windows 2008, Windows 2012, GNU Linux o Unix) di tradurre gli indirizzi tra Internet pubblico e una rete privata locale LAN.

In che modo questa traduzione può salvare gli indirizzi IPv4 in costante esaurimento? Continue Reading


Cargo Cult Programming

Prima o poi i programmatori ci cascano tutti. Ma per capire di cosa stiamo parlando, dobbiamo fare un salto nel passato.

Cargo Cult, o culto delle merci, una pratica in voga in alcune società tribali melanesiane in seguito all’incontro con popolazioni occidentali, secondo cui ii credenti hanno in comune la fede nell’avvento di navi o aerei da trasporto con carichi di beni destinati agli indigeni. In pratica i credenti ritengono che questa consegna sia disposta grazie all’intervento di un entità divina. Continue Reading


Indicizzazione su Google, Ranking e SEO

Trovarsi nella prima pagina dei risultati di Google è sempre più un’utopia. Ecco perchè la prima cosa che chiedono i clienti è: quanto tempo ci vuole affichè il mio sito spunti su Google?

Giustamente, chi investe sul proprio sito web vuole sapere quanto tempo ci vorrà affinchè il sito venga classificato. Come la maggior parte degli investimenti, è naturale sapere quando ci si può aspettare un ritorno sul proprio investimento.

Avere a che fare con i ranking di Google, tuttavia, non è facile e purtroppo la risposta non è scontata. Quando si inizia una campagna SEO da zero, non esiste una formula segreta per il posizionamento. Sebbene le agenzie SEO più efficaci possano aiutare un’azienda a posizionarsi entro 3-6 mesi, non esiste alcuna garanzia a meno che tu non abbia già un’attività autorevole e consolidata (in altre parole, Google si fida dei tuoi contenuti).

Il fattore più importante da comprendere in questo processo è ciò che Google prende in considerazione quando indicizza la tua pagina rispetto alla concorrenza.

Continue Reading


Errori comuni nella progettazione di database

Quando progettiamo un database (per un app, per un sito o per le esigenze più disparate), dobbiamo essere pronti ad affrontare delle “sfide” dovuti a vari problemi di progettazione. Alcuni di questi problemi sono inevitabili e non possiamo controllarli. Altri invece possono essere ricondotti alla qualità della progettazione stessa. Le decisioni che prendiamo in questa fase preliminare possono avere un profondo impatto sul funzionamento del database. Quali potrebbero essere gli errori più comuni durante la progettazione? Di seguito ne riporto alcuni. Continue Reading


Come funziona un database SQLite?

SQLite è un database utilizzato in milioni di software e dispositivi mobili. E’ stato inventato da D.Richard Hipp nell’agosto 2000. Lite in SQLite significa leggerezza in termini di installazione, amministrazione del database e risorse necessarie, motivo per cui è stato scelto come database in molte app per smartphone e dispositivi portatili (con esigue risorse e capacità di elaborazione).

In parole povere, SQLite è un pacchetto software di dominio pubblico che fornisce un sistema di gestione di database relazionale o RDBMS. I sistemi di database relazionali vengono utilizzati per archiviare record definiti dall’utente in tabelle di grandi dimensioni. Oltre all’archiviazione e alla gestione dei dati, un motore di database può elaborare comandi di query complessi che combinano dati da più tabelle per generare report e riepiloghi di dati. Altri prodotti RDBMS popolari includono Oracle Database, DB2 di IBM e SQL Server di Microsoft sul lato commerciale, con MySQL e PostgreSQL che sono popolari prodotti open source.

Continue Reading


Pagine:123456

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi