Introduzione al coding


Pensate che programmare sia una cosa impossibile e che possono farlo solo i cervelloni? Credete che programmando si possono avere delle conseguenze sul computer, e quindi avete paura a fare qualsiasi cosa riguardo a questo mondo? Non preoccupatevi! Non è affatto difficile. In questa guida vedremo come programmare un bot di discord in discord.js (usando la nuova v13), partendo dalle basi di JavaScript fino ad arrivare a funzioni molto più complesse.


Sommario

Requisiti

Prima di iniziare, guardiamo cosa ci serve.

  • Node.js v16.6.x
  • Windows 10 (o un qualsiasi sistema operativo in grado di usare l\’ultima versione di node)
  • Visual Studio Code

Link utili

Qua sotto vi metto i link per scaricare ciò che ci serve. Vi consiglio vivamente di installare i seguenti tool prima di iniziare. Se già li avete, passate al prossimo paragrafo.


IntelliSense

In questo primo articolo iniziamo a vedere gli strumenti che utilizzeremo nel nostro progetto. Il primo strumento è l\’IntelliSense che, con la potenza del Typescript, ci fornirà un aiuto enorme durante lo sviluppo del nostro bot. Di seguito è riportata un\’immagine ufficiale riguardo l\’uso di questa funzione.

\"\"
Uso dell\’IntelliSense
Cos\’è l\’IntelliSense?

IntelliSense è una funzione di Visual Studio Code che permette di ricevere suggerimmenti durante la scrittura del codice, nel nostro caso, Javascript.
Questa funzione ci permetterà di eseguire alcune azioni più facilmente, come:

  • Completare il codice grazie a suggerimenti, semplicemente cliccando invio:
\"\"
  • Avere info dettagliate riguardo i parametri di alcune funzioni:
\"\"
  • Consultare una lista dei metodi e dei valori legati ad un object con le loro informazioni per scegliere quello di cui abbiamo bisogno:
\"\"

TypeScript

Cos\’è TypeScript?

IntelliSense utilizza strumenti specifici per ogni linguaggio di programmazione per fornirci i suoi servizi. Visual Studio Code ha un supporto nativo per il JavaScript grazie all\’aiuto del TypeScript.

Typescript è un linguaggio di programmazione che si basa sul JavaScript, aggiungendo definizioni di tipo (types).

types forniscono un modo per descrivere la forma di un oggetto, fornendo una migliore documentazione e consentendo a TypeScript di verificare che il codice funzioni correttamente.

Ancora confusi? Semplicemente, TypeScript controlla che il vostro codice sia esatto, non soltanto dal punto di vista sintattico, grazie ai types, ma nel caso commettiate qualche errore, ve lo comunicherà prima di eseguire il codice, addirittura mentre lo scriviamo, grazie al supporto nativo di Visual Studio Code.

Cosa sono i types?

types sono descrizioni di qualsiasi cosa in JavaScript. Pensate a quando usiamo un semplice console.log() (per mandare qualcosa nel promt) nel nostro codice: abbiamo utilizzato un oggetto chiamato console ed eseguito la funzione log. Grazie a questi types, TypeScript sa che console ha una certa funzione (o metodo) chiamata log e ci dirà se il nostro codice è esatto. Se invece utilizzassimo una funzione come console.send(), che non esiste, ci mostrerà un errore:

\"\"
Funzioni del TypeScript

TypeScript può quindi aiutarci a non sbagliare, mostrandoci degli errori direttamente nel nostro editor. Nasce come un linguaggio di programmazione, ma noi utilizzeremo la sua potenza con il JavaScript in Visual Studio Code. Ora osserviamo quali sono le sue principali funzioni:

  • Controllare che, in generale, il codice non includa parti che indurrebbero ad un errore durante l\’esecuzione, come:
\"\"
  • Includere un fix veloce per errori semplici, come quello nell\’immagine precedente:
\"\"
  • Mantenere sempre lo stesso type per ogni elemento, in modo da essere sempre a conoscenza di cosa un elemento rappresenti:
\"\"
  • Assicurare che tutti i types vengano utilizzati propriamente:
\"\"
  • Assicurare che tutte le funzioni vengano chiamate con i parametri corretti:
\"\"
Assegnare types manualmente

Ovviamente, Typescript non può sempre immaginare che types vogliamo assegnare ad alcuni elementi, perciò dovremo dirglielo noi! Per farlo utilizzeremo i JSDoc. Prendiamo il seguente esempio di codice:

function run(message, args) {
  console.log(message.auhtor);
  return args.join(\" \");
}

In questo caso Typescript non sa quali sono i types di message e args perciò non sarà in grado di rilevare eventuali errori, come message.auhtor che non esiste. Per risolvere questo problema seguiamo la seguente procedura:

  1. Spostiamo il cursore su uno dei parametri che abbiamo scritto e clicchiamo su Quick Fix…:
\"\"
  1. Clicchiamo su Infer all types from usage:
\"\"
  1. A questo punto verrà creato un JSDoc e Typescript proverà ad indovinare i types dei parametri:
\"\"
  1. Ora non ci resta che controllare e sostituire i types nelle parentesi graffe con quelli corretti. message ha un type creato da discord.js chiamato Message, perciò ci basterà scrivere questo nome e, quando apparirà nella lista dei suggerimenti, cliccare \”Invio\”:
\"\"

Ora Typescript potrà finalmente aiutarci anche all\’interno della funzione! Il codice precedente sarà adesso come il seguente e ci avvertirà dell\’errore in message.auhtor:

const { Message } = require(\"discord.js\");

/**
 * @param {Message} message
 * @param {string[]} args
 */
function run(message, args) {
  console.log(message.auhtor);
  return args.join(\" \");
}
Lista dei types

Nota: Questa sezione include riferimenti a elementi JavaScript non ancora trattati nella guida come array o Promise.

Qui di seguito è riportata una lista dei vari types predefiniti che possono essere utilizzati per descrivere i nostri elementi. Se volete utilizzare un type esterno, cioè creato da un altro package, ricordate di utilizzare la procedura descritta nel punto 4 della sezione precedente.

  • any: Può essere qualsiasi cosa e disabilita tutti i controlli su di lui, sconsigliato da usare. Es. 1undefined;
  • bigint: Indica un numero molto grande. Es. 30 milioni;
  • boolean: Sì o no. Es. truefalse;
  • null: Nulla, ma nella forma JavaScript. Es. null;
  • number: Indica un numero qualsiasi. Es. 15123.4;
  • string: Indica una stringa JavaScript. Es. \"Sus\"\"\";
  • symbol: Indica un simbolo univoco in JavaScript. Es. Symbol(\"Sus\");
  • undefined: Nulla, qualcosa che non esiste. Es. undefined;
  • unknown: Può essere qualsiasi cosa e richiede di controllare manualmente che type abbia prima di eseguire qualsiasi azione con esso. Es. \"Sus\"null;
  • void: Di nuovo nulla, ma utilizzato nelle funzioni che non usano nessun return;
  • x[]: Un array dove tutti gli elementi hanno come tipo x. Es. string[]unknown[];
  • Promise<x>: Una promessa che restituirà un elemento di tipo x quando verrà esaudita. Es. Promise<string>Promise<unknown>.

Estensioni

Per poter attivare e potenziare le funzioni descritte in questo articolo, direttamente in Visual Studio Code, avremo bisogno delle seguenti estensioni:


Conclusioni

Siamo arrivati alla fine di questo primo articolo, dove abbiamo analizzato alcune delle funzioni più importanti che ci serviranno per programmare il nostro bot Discord. Nel prossimo articolo vedremo tutte le funzioni base di JavaScript che saranno utili per il coding. Lasciate un commento se avete dubbi, ti risponderemo il prima possibile 🙂


Scopri di più da Sito ufficiale MS

Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.


4 risposte a “Introduzione al coding”

  1. Avatar francescotroll
    francescotroll

    Utile e semplice si… ma per me sarà sempre complicatu

    1. Avatar davi_fonto_

      Presto imparerai anche tu 😄

      1. Avatar francescotroll
        francescotroll

        Quando avrò 20anni

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

PAGE TOP