Seguici su:
Programmazione Web Italia

Più di recente, su PWI...

I framework Web più utilizzati dagli sviluppatori

La classifica dei framework Web più utilizzati a livello globale nel 2023.
Guarda il grafico...

I framework Web più utilizzati dagli sviluppatori
Pubblicato il

I tre paradigmi di programmazione: strutturata, ad oggetti e funzionale

I tre paradigmi di programmazione: strutturata, ad oggetti e funzionale

I principali paradigmi di programmazione si riducono a tre: programmazione strutturata, programmazione ad oggetti e programmazione funzionale. Lo scopo di questo articolo è quello di evidenziarne i caratteri salienti e i vantaggi che derivano dalla loro applicazione.

Programmazione strutturata

Lo scopo della programmazione strutturata è la decomposizione di una applicazione software in moduli, ogni modulo può, a sua volta, essere suddiviso ricorsivamente in componenti più piccole, fino ad arrivare alla singola funzione atomica. Questo paradigma permette di affrontare un problema complesso (la nostra applicazione) attraverso un approccio divide-et-impera separando le sue funzionalità in unità più piccole e gestendole in maniera indipendente: è un approcciò più strategico nella gestione della complessità.

Ogni funzione può essere descritta tramite l'utilizzo delle tre strutture di controllo: sequenza, selezione e iterazione, ne deriva che tutti i programmi, a prescindere dalla loro complessità, possono essere descritti utilizzando solamente questi tre principi di base.

Un altro concetto importante circa il paradigma della programmazione strutturata e il suo approccio modulare riguarda il fatto che le funzioni atomiche risultanti dalla decomposizione sono soggette a test formali volti a verificare la presenza eventuale di bug: il successo del test ci dimostra che un tale bug è presente nel sistema che stiamo progettando; al contrario il fallimento del test ci può dare una ragionevole sicurezza che certuni bug non siano presenti, nonostante non sia formalmente possibile dimostrarne Continua...

Pubblicato il

I linguaggi di programmazione più utilizzati dagli sviluppatori nel mondo

La classifica dei 10 "linguaggi di programmazione" più utilizzati dagli sviluppatori nel mondo.
Guarda il grafico...

I linguaggi di programmazione più utilizzati dagli sviluppatori nel mondo
Pubblicato il

Una tabella dinamica in HTML, Javascript e CSS - codice e spiegazione

Una tabella dinamica in HTML, Javascript e CSS - codice e spiegazione

Funzionalità come il sorting e la paginazione permettono di interagire con una tabella in maniera più veloce ed efficente, spesso ci si affida a soluzioni di terzi, ma in questa guida vorrei farvi provare a sviluppare una tabella dinamica partendo da zero e utilizzando solo le versioni vanilla di HTML, JavaScript e CSS. Spero di esservi utile!

Introduzione

La nostra tabella dinamica si svilupperà in maniera progressiva partendo da una semplice soluzione statica con i dati tabellari scritti a mano dallo sviluppatore, procedendo con l'inserimento di dati ottenuti attraverso una chiamata HTTP e aggiungendo, infine, funzionalità più avanzate come la paginazione, il sorting e il filtering. Le varie sezioni saranno elaborate in momenti differenti e potrebbero non essere ancora disponibili: incoraggiate il mio lavoro condividendo questa pagina o mettendo un like!

Una semplice tabella statica HTML

Per iniziare e per ripassare un poco l'argomento, sviluppiamo una semplice tabella HTML utilizzando i tag previsti nelle specifiche HTML5. Qui di seguito scrivo il codice che definisce una tabella per un insieme di ipotetici utenti. Continua...

Pubblicato il

Il selettore :has() in CSS - descrizione ed esempi pratici

Il selettore :has() in CSS - descrizione ed esempi pratici

Il selettore :has(), proposto nelle specifiche CSS level 4, fin dalla fine del 2023 è adottato dalla maggior parte dei browser: è giunto il momento di capire come utilizzare questa nuova opportunità.

Il selettore :has() in CSS4

Il selettore :has() consente agli sviluppatori di selezionare elementi del DOM che contengono al loro interno elementi che rispondono al selettore passato come parametro nella funzione: :has(). E' essenzialmente un selettore che permentte di ottenere il "parent" degli elementi definiti attraverso il parametro.

Provo a fare un semplice esempio chiarificatore Continua...

Pubblicato il

Setup di un progetto Node / Express

Setup di un progetto Node / Express

Esistono tante guide per fare il setup di un progetto Node / Express, in questa vorrei però aggiungere la descrizione di qualche strumento e metodologia applicati in ambito professionale. Spero che questo contribuisca alla condivisione dell'articolo..

Cosa faremo

Procederemo al setup di un piccolo progetto Web, alla fine dell'articolo avremo un server in ascolto su una specifica rotta e un semplice messaggio testuale come risposta. La funzionalità è decisamente minima, ma sufficiente per illustrare alcuni degli strumenti e mettere in pratica certe metodologie di sviluppo che spesso troviamo applicate in ambienti di lavoro professionali. Come anticipato, non ci focalizzeremo sulla sola implementazione tecnica, ma agiremo a più ampio spetto introducento concetti e pratiche provenienti dall'ambito professionale. Continua...

Pubblicato il

Architettura del Software: definizione e obiettivi

Architettura del Software: definizione e obiettivi

Tutti abbiamo almeno una idea vaga di cosa si intende per "Architettura del Software", ma penso che solo alcuni abbiano in mente concetti, pratiche e vantaggi precisi che ne derivano.

Architettura del Software: una definizione

Con Architettura del Software ci riferiamo alla struttura di un sistema software e alla progettazione delle interfacce dei suoi componenti; comprende le decisioni di progettazione che determinano quali parti compongono l'applicazione e come queste interagiscono e lavorano assieme per raggiungere gli obiettivi richiesti. Queste decisioni includono la struttura del filesystem (i file e le cartelle), la scelta dei framework da adottare, la definizione delle interfacce tra le diverse componenti che costituiscono l'applicazione, la gestione dei dati, la distribuzione delle responsabilità tra i moduli e altro ancora.
Un'architettura ben progettata facilita la manutenzione, l'aggiornamento e l'aggiunta di funzionalità del software nel tempo ponendo la giusta attenzione ad aspetti quali: la scalabilità, la sicurezza, la manutenibilità e la flessibilità per garantire che il software possa crescere Continua...

Pubblicato il

L'attributo 'ping' del tag <a> in HTML5

L'attributo 'ping' del tag <a> in HTML5

Fin dalla sua pubblicazione HTML5 ha introdotto alcuni attributi che, seppur interessanti, non sono mai stati usati o compresi fino in fondo, l'attributo 'ping' è secondo me uno di questi.

Cos'è l'attributo "ping"?

L'attributo "ping", introdotto in HTML5, è un attributo poco utilizzato del tag <a>. Molto semplicemente, serve a specificare una serie di URL che verranno richiamati automaticamente quando un link viene seguito dall'utente (al "click", per intenderci). Questo attributo può essere utile in diverse situazioni, in particolare per scopi di monitoraggio e analisi.

Utilizzo: come utilizzare l'attributo "ping"

Spesso è utile sapere se un utente ha cliccato un dato link (tipicamente un link che punta ad una risorsa esterna al nostro sito, sulla quale non abbiamo controllo). In questi casi, il comportamento Continua...

Pubblicato il

Le Closure in JavaScript

Le Closure in JavaScript

Tutte le volte che ho dovuto affrontare il discorso CLOSURE in JS finivo per avere una impressione riassumibile nella frase: "Tutto molto bello, ma... QUINDI?"

Cosa sono le closure in JavaScript?

Una closure è la capacità di una funzione, definita all'interno di un'altra funzione contenitrice, di accedere allo scope della funzione esterna, anche dopo che questa ha cessato la sua esecuzione. Attraverso le closure (ed ad un apposito handler), insomma, posso accedere allo scope (metodi e attributi) di una funzione (quella contenitrice) da un qualsiasi ambito esterno.

Ecco un esempio di closure. Continua...

Pubblicato il
Vedi tutti i Post