Design first.

Goa fornisce un approccio olistico per lo sviluppo di remote API e microservizi in Go.

 

Genera codice

Goa si appoggia alla generazione automatica di codice per alleviare il bisogno delle reflection o del codice ripetitivo.
Il tool goa genera vari artefatti tra cui codice, documentazione clients e perfino output personalizzati attraverso i plugin. Il risultato finale è un codice applicativo pulito e conciso.

Design Based

Il linguaggio di design di Goa è flessibile e sta fuori dal contesto applicativo – Tu decidi come la tua API funziona. Il design è l'unica fonte di veritá dalla cui costruzione sono derivati sia il comportamente che la documentazione. Il linguaggio di design di Goa è, essendo una DSL in GO, è facile da customizzare e i design risultanti sono facili da condividere.

Basato su Best Practice

Goa genera codice che segue le best practice ed è particolarmente adatto per costruire architetture di sistemi basati su microservizi. Il codice è organizzato in modo che problemi specifici di trasporto dati non vadano a impattare sulla logica di business.

Il Life Cycle dello sviluppo dei Servizi

Progetta

La creazione di un servizio con Goa parte dal design. Il DSL di Goa ti permette di descrivere i cosiddetti "service methods", cosí come le sue strutture dati di input e output. Il DSL ti permette anche di definire come costruire e serializzare le tue strutture dati a partire da e attraverso protocolli specifici, come HTTP Body, HTTP Headers o messaggi gRPC.

Implementa

Il tool Goa legge i tuoi design e produce tutto il codice necessario a costruire i vari servizi e un client tool. Il codice generato include i vari transport layers e la validazione dei vari input. L'implementazione di un servizio è quindi semplice come implementare delle interfacce Go, non importa quale protocollo di trasporto il servizio decide di adottare e seguire. In particolare Goa rende banale implementare un servizio che accetta sia richieste HTTP che gRPC.

Estendi

La parte migliore del DSL di Goa è che il suo motore di valutazione è completamente disaccoppiato. I Plugin possono anche implementare dei DSL personalizzati per estendere i concetti descritti nel design. I Plugins possono anche generare output arbitrari o modificare quello generato dai generatori pre-costruiti nel tool. In particolar modo, il plugin go-kit rende possibile generare dei servizi compatibili con Go kit, i quali possono trarre vantaggio dal toolkit per necessita operative e infrastrutturali.

Getting Started

1 Impara le basi con la nostra Getting Started Guide.

2 Impara di più sul Goa DSL.

3 Consulta i vari esempi.

4 Unisciti al nostro canale Slack (puoi iscriverti qui).