Destrutturazione in nodejs, ovvero i 3 puntini, a cosa servono e come si usano

Ho scritto questo piccolo memo a mio e tuo beneficio, perché per tanti che approcciano a linguaggi simili a nodeJS è difficile o comunque ostico capire cosa capperi fa la funzione con i 3 puntini.

Prima di tutto voglio che sappiate che destrutturare è una cosa troppo utile per non usarla, pertanto abbracciala con disinvoltura e con amore.

Prima cosa: cosa fa la destrutturazione?

Quando fai qualcosa del tipo:

const { pippo, pluto, paperino } = { pippo: 1, pluto: 2, paperino: 3 };

Stai essenzialmente “estraendo” delle proprietà da un oggetto e creando delle variabili con i loro valori. In questo caso, sì, stai creando tre variabili:

  • pippo con valore 1
  • pluto con valore 2
  • paperino con valore 3

Queste sono variabili a tutti gli effetti, quindi puoi richiamarle più avanti nel tuo codice.

Destrutturazione con valori predefiniti

Ora, se fai:

const { page = 1, pageSize = 20, cache = 'cache', ...filters } = params;
  • page, pageSize, e cache sono variabili estratte da params, e se params non contiene questi valori, verranno utilizzati i valori predefiniti (1, 20, 'cache').
  • ...filters raccoglie tutte le altre proprietà di params che non sono state esplicitamente estratte.

Così come page, pageSize e cache, potrai usare anche filters come costante da lì in poi disponibile nel tuo codice.

Facciamo un esempio completo:

Supponiamo di avere questo oggetto:

const params = { pippo: 10, pluto: 20, paperino: 30, page: 5 };

Ora facciamo la destrutturazione:

const { page = 1, pageSize = 20, cache = 'cache', ...filters } = params;

Ecco cosa succede:

  • page: Viene preso da params ed è 5.
  • pageSize: Non esiste in params, quindi viene assegnato il valore predefinito 20.
  • cache: Non esiste in params, quindi viene assegnato il valore predefinito 'cache'.
  • filters: Contiene tutte le altre proprietà di params, cioè { pippo: 10, pluto: 20, paperino: 30 }.

Cosa succede a filters?

Dopo la destrutturazione, filters diventa un oggetto che contiene tutto ciò che non è stato esplicitamente estratto. Quindi , le proprietà che non vengono destrutturate (come pippo, pluto, paperino), finiscono in filters.

Risultato:

  • page è 5 (viene preso da params).
  • pageSize è 20 (valore predefinito).
  • cache è 'cache' (valore predefinito).
  • filters è { pippo: 10, pluto: 20, paperino: 30 }.

Quindi, , se usi ...filters, le costanti che hai definito all’inizio, come page, pageSize, e cache, non saranno incluse in filters, ma saranno create come variabili distinte.

Conclusione:

  1. page, pageSize, cache vengono create come variabili a sé stanti, con valori presi da params (o predefiniti se non ci sono).
  2. filters raccoglie tutte le proprietà di params che non sono state estratte (come pippo, pluto, e paperino in questo caso).

Quale Linguaggio di Programmazione Imparare?

Imparare un linguaggio di programmazione può aprire un mondo di opportunità, sia che tu stia cercando di entrare nel campo della tecnologia per la prima volta o che tu stia cercando di migliorare le tue competenze esistenti.

Ma con così tanti linguaggi disponibili, quale dovresti imparare? In questo articolo, esploreremo alcuni dei linguaggi di programmazione più popolari e le loro applicazioni per aiutarti a prendere una decisione informata.

Molto dipende anche da qual è la tua aspirazione; intraprendere una carriera da sistemista o devOps potrebbe farti virare su scelte completamente differenti rispetto a quelle che faresti se volessi diventare uno sviluppatore mobile o un web developer. Anche il sistema operativo nel quale dovranno essere usate le tue applicazioni cambia, ovviamente, in maniera significativa il peso specifico dei linguaggi di sviluppo.

Questo articolo è indirizzato verso i principianti, ma offre spunto anche a quanti partono da altri settori e volessero chiarirsi le idee su altri linguaggi di programmazione.

Andremo ad analizzare Python, Javascript, C# e Java.

Python: Versatilità e Facilità di Uso

Python è uno dei linguaggi di programmazione più popolari e versatili del mondo. È noto per la sua sintassi chiara e leggibile, che lo rende una scelta eccellente per i principianti.

Applicazioni:

  • Sviluppo Web: Framework come Django e Flask.
  • Data Science: Librerie come Pandas, NumPy e scikit-learn.
  • Automazione e Scripting: Perfetto per automatizzare compiti ripetitivi.
  • Machine Learning e Intelligenza Artificiale: Supporto per librerie come TensorFlow e PyTorch.
PROCONTRO
Facile da imparare e usare.Non è il più veloce in termini di prestazioni.
Grande comunità di supporto.Non è sempre la scelta migliore per lo sviluppo mobile.
Ampia gamma di applicazioni.

JavaScript: Il Re del Web

JavaScript è il linguaggio di programmazione del web. È essenziale per lo sviluppo front-end e sta diventando sempre più importante anche per il back-end grazie a Node.js.

Applicazioni:

  • Sviluppo Web: Front-end (React, Angular, Vue) e back-end (Node.js).
  • Sviluppo Mobile: Framework come React Native.
  • Sviluppo di Giochi: Motori di gioco come Phaser.
PROCONTRO
Essenziale per lo sviluppo web moderno.Può essere difficile da debugare a causa della sua natura asincrona.
Grande ecosistema di librerie e framework.Problemi di sicurezza se non gestito correttamente.
Alta domanda di sviluppatori JavaScript.Difficoltà di apprendimento perché sia back-end che client-side.

Java: La Scelta dell’Impresa

Java è un linguaggio di programmazione robusto e sicuro, molto popolare nelle grandi imprese e per lo sviluppo di applicazioni Android.

Applicazioni:

  • Applicazioni Enterprise: Utilizzato da molte grandi aziende.
  • Sviluppo Android: Il linguaggio principale per lo sviluppo di app Android.
  • Sistemi Backend: Molti server e applicazioni backend sono scritti in Java.
PROCONTRO
Altamente scalabile.Curva di apprendimento ripida.
Forte gestione della memoria.Più verboso di altri linguaggi.
Alta domanda nelle grandi imprese.Necessita di strumenti più “pesanti” per essere sviluppato.

C#: La Potenza di Microsoft

C# è un linguaggio di programmazione sviluppato da Microsoft, ideale per lo sviluppo di applicazioni Windows e giochi con il motore Unity.

Applicazioni:

  • Sviluppo di Applicazioni Windows: Utilizzato con il framework .NET.
  • Sviluppo di Giochi: Uno dei principali linguaggi per lo sviluppo con Unity.
  • Sviluppo Web: Utilizzato con ASP.NET per creare applicazioni web.
PROCONTRO
Ottima integrazione con i prodotti Microsoft.Principalmente limitato all’ecosistema Microsoft.
Forte comunità di sviluppatori.Meno popolare al di fuori del mondo Windows.
Ideale per lo sviluppo di giochi.

La scelta del linguaggio di programmazione da imparare dipende dai tuoi obiettivi e interessi specifici. Se sei un principiante, Python è una scelta eccellente per la sua facilità d’uso e versatilità. Se sei interessato allo sviluppo web, JavaScript è indispensabile. Per chi mira a entrare nel mondo aziendale, Java è una scelta solida, mentre C# è ideale per chi è interessato allo sviluppo di applicazioni Windows e giochi.

Se dovessi dare un consiglio universalmente valido io partirei da Javascript, che con NodeJS, è diventato un linguaggio di programmazione universale e molto potente.

Qualunque cosa andrai imparare ti sarà utile, comincia subito 😀

Ho chiesto a ChatGPT di fornirmi dei dati circa le curve di apprendimento di questi linguaggi, ma questo è un altro articolo.
A presto.