Minicorso Let’s Golang – 1ª 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).

1ª puntata

 

In questa prima puntata approfondiremo i seguenti argomenti: fondamentali di Gocontrollersmodels e routing.

Intro

  • Go: introduzione generica e breve sul linguaggio dal punto di vista teorico e/o storico;
  • Caratteristiche di Go: in cosa è simile agli altri linguaggi e in cosa differisce;
  • Utilizzo di Go: principali progetti nei quali Go è stato scelto;
  • CLI: spiegazione dei comandi “go mod init” e “go mod tidy” fruibili attraverso il terminale;
  • Go tools: breve panoramica dei tools che useremo nella sezione pratica, tra cui “go fmt” e “staticcheck”.

Practice

Ingredienti

  • Go;
  • go fmt;
  • staticcheck;
  • VSCode (o qualsiasi altro IDE);
  • Postman (o qualsiasi altro tool per testare REST-api);

Step

  • Creazione di un progetto Go e inizializzazione delle sue dipendenze;
  • Hello, World! Eseguiamo l’applicazione “tipica” di noi devs 😉. In questo modo siamo certi di avere una base funzionante per le modifiche successive;
  • Routing: creazione e setup del router che ci servirà per mappare le richieste HTTP alle relative action dei nostri controller. Per testare la correttezza del router esporremo una semplice rotta “/ping” al quale verrà risposto un “pong” 🏓;
  • Models: definizione del modello sul quale si baserà la nostra intera applicazione;
  • Controller: definizione dell’endpoint “todos” e delle relative actions previste dalla nostra applicazione. In questa prima fase andremo a validare il nostro modello di input (ove previsto), settare un messaggio di risposta (qualora fosse necessario) ed impostare il corretto HTTP status code;
  • 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

DevOps: l’evoluzione da Agile a DevX

DevOps: l’evoluzione da Agile a DevX

In questa puntata vedremo un approccio teorico su come si può spingere di più in azienda con i team cross e come “Dev(Ops|X)” può aiutare ad alleggerire il carico del programmatore portando codice di valore!