Go

Go言語でWebAppの開発に必要なN個のこと

More than 1 year has passed since last update.

元ネタ

あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必要だと思われる。とりあえずGo言語について知っていることを書いた。

パッケージマネージャ

標準でついてるgoツールを使おう。必要なライブラリはリポジトリから、go getで取ってこよう。

go get <リポジトリ>

アプリケーションサーバ

標準パッケージのnet/httpパッケージを使えばhttpサーバを動かすことができる。apacheやnginxで動かしたかったら、標準パッケージのnet/http/cgiパッケージnet/http/fcgiパッケージを使えばいい。

ルーティングとリクエストパラメータの処理

標準パッケージだとnet/http.Requestnet/http.ServeMuxあたりを使えばいける。もっと機能が欲しければgowebgorillaも便利。

データベース

標準でRDB用のインタフェースをdatabase/sqlパッケージで定義している。実際は、各RDBMSのドライバ使う。ORMならgorpがいいらしい

ビューのレンダリング

HTMLなら標準パッケージのhtml/templateパッケージを使えば、テンプレートエンジンが使える。JSONやXMLなら標準パッケージのencodingパッケージ以下のパッケージを使えばいい。サードパーティ製であればMessagePackもある。

HTTPクライアント

標準パッケージのnet/http.Clientを使えばいいと思う。

テストフレームワーク

goツールのgo testを使えばいい。
テストプログラムを書くには、標準パッケージのtestingパッケージを使う。webアプリのテストなら標準パッケージのnet/http/httptestパッケージも使えるだろう。

WAF

私個人はそんなに必要性を感じないが、gowebは便利だと思った。

マスコット

標準パッケージではないが、Gopher君というマスコットがかわいい。
Webアプリには関係ない。

以上。他にもあれば指摘してほしい。