Posted at

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

More than 5 years have 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アプリには関係ない。

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