🎃

Goa の example が試しやすくなりました

2023/10/21に公開

TL;DR;

Goa の examples に含まれるサンプルがテンプレートとして利用できるようになりました。

https://github.com/goadesign/examples

go install golang.org/x/tools/cmd/gonew@latest
gonew goa.design/examples/basic@latest github.com/<your_repo>/basic
cd basic

くわしく

hacktoberfest 2023 なので、前からちょっと考えていたアイディアを提案してみました。アイディアは Goa の examples に関することです。

https://github.com/goadesign/examples/issues/131

Goa のデザインのサンプルは github.com/goadesign/examples の各ディレクトリに basic, multipart, security などと分類されて動作する形で収められています。これまで、これらのサンプルを利用しようと思うと、大元の github.com/goadesign/examples を clone してきて手元で動作させるなどとしていました。

試す分にはまあそれでもいいのですが、サンプルをデザインのひな形として利用しようと思うと、clone してきたフォルダをコピーして、パッケージ名を直して、それを利用する、といったように手間がかかっていました。

そこで、gonew コマンド を利用して、これらのサンプルをテンプレートとして利用できるように修正しました。

現在、各フォルダは Go モジュールとして独立しています。なので、

go install golang.org/x/tools/cmd/gonew@latest
gonew goa.design/examples/basic@latest github.com/<your_repo>/calc calc
cd calc

などとすれば、サンプルをテンプレートとして、新しい自分のプロジェクトを始められます ╭( ・ㅂ・)و ̑̑ グッ !。モジュール名も調整されますので、そのまま改造して、開発を進められます。

「まさに作業すれば出来そうなんだがなー案件」で、なかなかやろうとも思えないので、hacktoberfest の機会にを完走できてよかったです。Goa に issue とか pull reqest を出すと、メンテナの Raphael=san がすぐに great! nice! とか言ってほめてくれるので、自己肯定感が下がっているときには Goa に contribute するといいです。なんなら、Raphael=san にほめてもらいたくてやってるみたいなとこところはあります。人柄って大事ですね。

ところで、Goa の全部入りの一番大きいサンプルは weather サンプルです。このサンプルは clue のレポジトリに example/weather として納められています。もちろんこれも gonew できます 残念ながら、こちらは複数サービスが連携するようなサンプルなので、gonew では対応できなくて、リポジトリの clone が必要です。Goa の開発ではこのサンプルを主に使っているそうです(知らなかった)。

というわけで、Goa の敷居をほんのちょっとだけ下げる試みについてでした。

Happy hacking!

Discussion