Webアプリケーションフレームワーク goa
goaとは、GolangでWebアプリケーションを構築していくフレームワークです。
今流行りのマイクロサービスやAPIサーバを早急に構築できます。(HTMLを返すWebサーバももちろん、実装可能です)
早急といった言葉を使ったのは、Webアプリケーションを構築する際の
- ルーティング
- リクエストパラメータの定義
- レスポンスパラメータの定義
- パラメータのバリデーション
- コントローラの定義
といった、ビジネスロジック以外の土台部分を自動で生成してくれて、
ビジネスロジックの実装に専念できるからです。
自動生成といっても、思い描いたものが勝手にできる訳ではなく、
goa独自のDSLを記述してアプリケーションの仕様を定義する(デザインする)必要があります。
goaではアプリケーションの枠組みを、design.go(デザインファイル)というAPIの定義書を作って生成していきます。
DSLを覚える学習コストはありますが、それに見合った以上の働きをしてくれます。
Webアプリケーションのフレームワークとして有名なRuby on Railsも、
お作法を知らないと、レールから外れた実装をする事になり複雑な実装になってしまいます。
が、Railsは世界中で使われてる有名なフレームワークとなっています。
その学習コスト以上に見合った以上の働きがあるからでしょう。
goaは、ビジネスロジックに没頭できる点において、Railsに匹敵できるほどポテンシャルを持っていると思います。
もちろん、RubyではなくGo言語なので、言語仕様上の違いがあり単純に比較はできません。
このブログでは、自分の学習結果のアウトプットとして、goaについての紹介を連載していきたいと思います。
コメント
コメントを投稿