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


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


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


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


Scegliere il giusto database

La scelta del database giusto dipende principalmente dalle esigenze dell’applicazione. Ci sono molti fattori da considerare nella scelta del database. In questo articolo, confrontiamo le proprietà ACID, gli attributi CAP e altre funzionalità dei database Cassandra, MongoDB e MySQL per aiutarti a scegliere il database giusto per le tue applicazioni. Continue Reading


CAP Theorem

Il teorema del CAP (ConsistencyAvailability and Partition tolerance), ideato dall’informatico statunitense Eric Brewer, afferma afferma che è impossibile per un sistema informatico distribuito fornire simultaneamente tutte e tre le seguenti garanzie: Coerenza, Disponibilità e Tolleranza delle partizioni.

Di seguito è riportata una breve definizione di questi tre termini:

  • Consistency: E’ la garanzia che ogni nodo in un cluster distribuito restituisca lo stesso dato più recente, ovvero proveniente dall’ultima scrittura dello stesso, oppure un messaggio di errore. Ogni client che interroga un qualsiasi cluster del sistema distribuito ha la stessa “vista” dei dati.  Ad esempio, un’applicazione bancaria distribuita mostrerà sempre il saldo corretto nel proprio account.
  • Availability: significa semplicemente che ogni richiesta deve ricevere una risposta. Un server funzionante non può ignorare una richiesta di un client ed è obbligato a dare una risposta. Nella maggior parte dei sistemi reali, ovviamente, una risposta sufficientemente ritardata è altrettanto negativa quanto una risposta non data.
  • Partition tolerance: il sistema continua a funzionare, nonostante il numero di messaggi ritardati dalla rete tra i nodi. Un sistema tollerante alle partizioni può sopportare qualsiasi problema di rete che non si traduce per forza in un guasto dell’intera rete. I record di dati sono sufficientemente replicati tra i nodi che garantiscono una tolleranza anche su interruzioni intermittenti. Quando si tratta di sistemi distribuiti moderni, il Partition Tolerance non è un’opzione, ma una necessità.

Lo schema seguente mostra i tre termini sopra riportati. Come si può vedere non si raggiungerà mai lo stato formato dall’unione di tutti e tre gli stati:

Teorema CAP – Coerenza, disponibilità, tolleranza delle partizioni

Continue Reading


Perchè usare GIT?

Git è un moderno sistema di controllo versione che offre le funzionalità di CVS o Subversion. Non solo. Git estende la nozione stessa di VCS (version control systems) grazie alla sua capacità di offrire quasi tutte le sue funzionalità per l’uso offline e senza un server centralizzato.

Git non è sinonimo di qualcosa… È nato da un’idea di Linus Torvalds nel 2005, il quale ha ammesso che Git può significare qualsiasi cosa, a seconda “del proprio umore”. È una combinazione casuale di tre lettere semplicemente pronunciabili e non effettivamente utilizzate da alcun comando UNIX comune. Il fatto che si tratti effettivamente di un errore di pronuncia della parola “get” può essere o non essere rilevante. La sua progettazione si ispira a strumenti analoghi come BitKeeper e Monotone. Oggi, gli sviluppatori di tutto il mondo stanno migrando a frotte verso questa piattaforma per le sue prestazioni efficienti, facilità e flessibilità di utilizzo, funzionalità offline e di collaborazione.  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