Goa の example が試しやすくなりました
TL;DR;
Goa の 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 に関することです。
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