Skip to content

Commit

Permalink
Add Goa Design Wizard
Browse files Browse the repository at this point in the history
  • Loading branch information
raphael committed Jun 3, 2024
1 parent 48214b6 commit 6662fb0
Show file tree
Hide file tree
Showing 4 changed files with 204 additions and 117 deletions.
119 changes: 74 additions & 45 deletions layouts/index.en.html
Original file line number Diff line number Diff line change
Expand Up @@ -140,58 +140,86 @@ <h3 class="inline">Built-in Best Practice</h3>
<div class="container" style="margin-top:4em">
<div class="row">
<div class="hero-unit">
<p>The Service Development Life Cycle</p>
<p>Goa Design Wizard</p>
</div>
<div class="span4" span style="text-align: center;">
<a href="https://chat.openai.com/g/g-mLuQDGyro-goa-design-wizard">
<img src="/img/Wizard.png" alt="Goa Wizard">
</a>
</div>
<div class="span8">
<p span style="font-size: 120%; font-weight: bold;">
<br/>
Use the <a href="https://chat.openai.com/g/g-mLuQDGyro-goa-design-wizard">Goa Design Wizard</a> to create a Goa design interactively.
</p>
<ul>
<li>Create Goa designs in seconds</li>
<li>Get instant feedback on your design</li>
<li>Explore Goa's design language</li>
</ul>
<p span style="font-size:80%">
(requires a <a href="https://openai.com/blog/chatgpt-plus">ChatGPT Plus</a> subscription)
</p>
</div>
</div>
</div>
<div class="container" style="margin-bottom:2em">
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/design">Design</a>
</h3>
<p style="margin-bottom:2em">
Creating a service with Goa starts with the design. The Goa DSL lets
you describe the service methods as well as their input and output
data structures. The DSL also lets you define how to construct and
serialize the data structures from and to transport specific data
such as HTTP body, HTTP headers or gRPC messages.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/implement">Implement</a>
</h3>
<p style="margin-bottom:2em">
The goa tool reads the service design and produces all the code
required to build the service and a client tool. The generated code
includes the transport layers and input validation. Implementing a
service is thus as simple as implementing generated Go interfaces no
matter what transport the service is listening to. In particular Goa
makes it trivial to implement a service that accepts both HTTP and
gRPC requests.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/extend">Extend</a>
</h3>
<p style="margin-bottom:2em">
The best part about the Goa DSL is that the evaluation engine is
completely decoupled. Plugins can implement custom DSLs to extend
the concepts described in the design. Plugins can also generate
arbitrary output or modify the output generated by the built-in code
generators. In particular the go-kit plugin makes it possible to
generate <a href="https://gokit.io">Go kit</a> compliant services
that can take advantage of the toolkit for operational and
infrastructure needs.
</p>
</div>

<div class="container" style="margin-top:4em">
<div class="row">
<div class="hero-unit">
<p>The Service Development Life Cycle</p>
</div>
</div>
</div>
<div class="container" style="margin-bottom:2em">
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/design">Design</a>
</h3>
<p style="margin-bottom:2em">
Creating a service with Goa starts with the design. The Goa DSL lets
you describe the service methods as well as their input and output
data structures. The DSL also lets you define how to construct and
serialize the data structures from and to transport specific data
such as HTTP body, HTTP headers or gRPC messages.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/implement">Implement</a>
</h3>
<p style="margin-bottom:2em">
The goa tool reads the service design and produces all the code
required to build the service and a client tool. The generated code
includes the transport layers and input validation. Implementing a
service is thus as simple as implementing generated Go interfaces no
matter what transport the service is listening to. In particular Goa
makes it trivial to implement a service that accepts both HTTP and
gRPC requests.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/extend">Extend</a>
</h3>
<p style="margin-bottom:2em">
The best part about the Goa DSL is that the evaluation engine is
completely decoupled. Plugins can implement custom DSLs to extend
the concepts described in the design. Plugins can also generate
arbitrary output or modify the output generated by the built-in code
generators. In particular the go-kit plugin makes it possible to
generate <a href="https://gokit.io">Go kit</a> compliant services
that can take advantage of the toolkit for operational and
infrastructure needs.
</p>
</div>
</div>

<div class="alternate">
<div class="container" style="margin-top:2em">
<div class="row">
<div class="hero-unit">
Expand Down Expand Up @@ -242,6 +270,7 @@ <h3>
</div>
</div>
</div>
</div>

</section>

Expand Down
117 changes: 73 additions & 44 deletions layouts/index.it.html
Original file line number Diff line number Diff line change
Expand Up @@ -137,57 +137,85 @@ <h3 class="inline">Basato su Best Practice</h3>
<div class="container" style="margin-top:4em">
<div class="row">
<div class="hero-unit">
<p>Il Life Cycle dello sviluppo dei Servizi</p>
<p>Mago del Design di Goa</p>
</div>
<div class="span4" span style="text-align: center;">
<a href="https://chat.openai.com/g/g-mLuQDGyro-goa-design-wizard">
<img src="/img/Wizard.png" alt="Goa Wizard">
</a>
</div>
<div class="span8">
<p span style="font-size: 120%; font-weight: bold;">
<br/>
Usa il <a href="https://chat.openai.com/g/g-mLuQDGyro-goa-design-wizard">Mago del Design di Goa</a> per creare un design di Goa interattivamente.
</p>
<ul>
<li>Crea design di Goa in pochi secondi</li>
<li>Ricevi feedback istantanei sul tuo design</li>
<li>Esplora il linguaggio del design di Goa</li>
</ul>
<p span style="font-size:80%">
(richiede un abbonamento a <a href="https://openai.com/blog/chatgpt-plus">ChatGPT Plus</a>)
</p>
</div>
</div>
</div>
<div class="container" style="margin-bottom:2em">
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/design">Progetta</a>
</h3>
<p style="margin-bottom:2em">
La creazione di un servizio con Goa parte dal design. Il DSL di Goa
ti permette di descrivere i cosiddetti "service methods", cos&iacute; 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.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/implement">Implementa</a>
</h3>
<p style="margin-bottom:2em">
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 &egrave; 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.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/extend">Estendi</a>
</h3>
<p style="margin-bottom:2em">
La parte migliore del DSL di Goa &egrave; che il suo motore di valutazione
&egrave; 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 <a href="https://gokit.io">Go kit</a>,
i quali possono trarre vantaggio dal toolkit per necessita operative e infrastrutturali.
</p>
</div>

<div class="container" style="margin-top:4em">
<div class="row">
<div class="hero-unit">
<p>Il Life Cycle dello sviluppo dei Servizi</p>
</div>
</div>
</div>
<div class="container" style="margin-bottom:2em">
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/design">Progetta</a>
</h3>
<p style="margin-bottom:2em">
La creazione di un servizio con Goa parte dal design. Il DSL di Goa
ti permette di descrivere i cosiddetti "service methods", cos&iacute; 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.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/implement">Implementa</a>
</h3>
<p style="margin-bottom:2em">
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 &egrave; 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.
</p>
</div>
<div class="row">
<h3>
<i class="fa fa-chevron-circle-right" style="color:#80AD00"></i>
<a href="/extend">Estendi</a>
</h3>
<p style="margin-bottom:2em">
La parte migliore del DSL di Goa &egrave; che il suo motore di valutazione
&egrave; 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 <a href="https://gokit.io">Go kit</a>,
i quali possono trarre vantaggio dal toolkit per necessita operative e infrastrutturali.
</p>
</div>
</div>

<div class="alternate">
<div class="container" style="margin-top:2em">
<div class="row">
<div class="hero-unit">
Expand Down Expand Up @@ -239,6 +267,7 @@ <h3>
</div>
</div>
</div>
</div>

</section>

Expand Down
Loading

0 comments on commit 6662fb0

Please sign in to comment.