Minicorso Let’s Golang – 2ª puntata

 

Il Meetup

Go è un linguaggio di programmazione in forte espansione negli ultimi anni ideato da 3 sviluppatori di Google nel 2007 (prima release ufficiale: novembre 2009). Quest’ultimi decisero di creare un linguaggio che avesse i pregi dei linguaggi di programmazione usati in precedenza ma non i loro difetti. È fortemente ispirato a CC++ e Assembly e, tra le sue caratteristiche, spicca che sia strongly-typed e compilato.

Se anche tu vuoi “sporcarti” le mani con Go e realizzare insieme un’app di esempio che ti consenta di apprendere i suoi concetti fondamentali, ti consigliamo di non mancare a questo minicorso! 🚀

Attraverso un talk pratico, andremo a realizzare una web api che si occuperà di gestire i nostri TODO. Questa web api sarà una semplice CRUD che esporrà le rotte per: aggiungere, leggere, modificare e cancellare i nostri TODO. Il layout della solution sarà quello tipico di una struttura multi-layered (presentation, business logic e DAL).

2ª puntata

In questa seconda puntata del minicorso su Go riprenderemo il progetto avviato la scorsa volta e lo porteremo a termine andando ad implementare il layer logico e il DAL (ossia il componente che ha il compito di “parlare” con il database). Il database che useremo sarà PostgreSQL, il quale verrà eseguito tramite Docker. Nello sviluppare metteremo in pratica i principi SOLID che stanno alla base della programmazione. BONUS: vedremo come utilizzare la Dependency Injection in Go 💉.

Intro

  • Interfaces: introduzione sulle interfacce. Cosa sono e utilizzo. Analogie e differenze con altri linguaggi;
  • ORM: introduzione generica sugli ORM. L’ORM di Go si chiama “GORM”;
  • Error: errori in Go, cosa sono, come si gestiscono e come andrebbero gestiti (IMO).

Practice

Ingredienti

  • Go;
  • go fmt;
  • staticcheck;
  • Docker;
  • DBeaver (o qualsiasi altro client che supporti Postgres);
  • VSCode (o qualsiasi altro IDE);
  • Postman (o qualsiai altro tool per testare REST-api).

Step

  • Setup PostgreSQL. Avvio di un server PostgreSQL in localhost tramite Docker. Creazione del DB, dello schema e della tabella (tutti chiamati “todos” per coerenza);
  • Definizione di un errore custom in Go;
  • Setup di GORM. Inizializzazione del client Postgres che useremo per interagire con il DB;
  • Definizione dell’interfaccia del DB e sua implementazione;
  • Definizione dell’interfaccia del business logic layer e sua implementazione;
  • Injection della dipendenza fornita dal business logic layer nel controller per fruire delle sue funzionalità;
  • Test finali con Postman.

Ivan Pesenti

Software Developer

Ciao 👋! Sono Ivan Pesenti. Ho 26 anni e lavoro come software developer dal 2014.

Attualmente faccio parte di Sorint Lab una software house che opera a livello internazionale in svariati ambiti. Ricopro il ruolo di sviluppatore con particolare focus sulla parte server-side. La mia peculiarità lavorativa è la particolare attenzione nello scrivere codice pulito, sicuro e testabile. In questi ambiti investo gran parte del mio tempo lavorativo e non.

Sono una persona molto attiva nella community in quanto, oltre a fare meetup occasionalmente, scrivo articoli sulla piattaforma “dev.to” e do lezioni private di informatica in svariati ambiti (dallo sviluppo, all’uso di software, ecc.).

Credo fortemente nella condivisione e nella formazione e penso che sia un punto imprescindibile nella crescita professionale e umana di ogni persona.

Nel mio tempo libero cerco di tenermi allenato praticando vari sport anche se il mio amore incondizionato rimane per il calcio. Adoro gli anime, i tatuaggi, il mare e trascorrere tempo con le altre persone.

Agenda

  • Benvenuto
  • Talk
  • Domande e risposte
  • Quiz & Lottery finale

Credits

Evento organizzato da:

In collaborazione con:

Powered by:

Gli altri meetup

Blockchain e Personal Data Protection: la Privacy in un mondo decentralizzato

Blockchain e Personal Data Protection: la Privacy in un mondo decentralizzato

Questa sessione esplorerà l’impatto rivoluzionario della Blockchain in vari settori, in particolare le sue implicazioni per la Privacy in un mondo sempre più digitale. Discuteremo le sfide e le opportunità presentate dai sistemi decentralizzati nella salvaguardia dei dati personali, le caratteristiche della blockchain in relazione alla trasparenza dei dati e le implicazioni per quadri giuridici e regolamentari come il GDPR.

Da Flutter & Dart a Java

Da Flutter & Dart a Java

Continuiamo il nostro viaggio tra i linguaggi di programmazione Java e Flutter/Dart: dopo il talk precedente, dedicato alla riscrittura di codice Java nel linguaggio Dart, in questo invertiremo la rotta. Prenderemo ancora in considerazione i principali elementi dei due linguaggi (classi, metodi, interfacce, programmazione funzionale), ne approfondiremo analogie e differenze, ma stavolta partiremo dal codice Dart e lo riscriveremo in Java.