この記事はKMCアドベントカレンダー2014の1日目の記事です。
KMCアドベントカレンダー1日目ということで先日GDG京都の勉強会とKMC学習発表会で話した「Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto」の補足などを書いてみたいと思います。
各種packageについて
今回の資料では
- https://github.com/zenazn/goji
- https://github.com/mattn/gom
- https://github.com/coopernurse/gorp
- https://github.com/yosssi/ace
- https://bitbucket.org/liamstask/goose
を使用する構成を紹介しました。
じっくり比較したわけではないけど、Golang でのウェブ開発を考えてみる - Qiita を参考にしたりした。
ただ、方針として自分も含めて普段RubyなどでWebアプリケーションを書いているという想定をしたので、今回はSinatraっぽい感じの構成になったと思っています。
スライドの中ではViewTemplateも紹介したけど、発表後のやり取りでこういうのがあった。僕も所感的にはGoでわざわざViewを書かなくても良いのではという感じではあるという気分です。
@pastak 私は、staticなhtmlとjsonのAPI(Go)で作ってます。クライアント側は完全にAngularJS任せですね。そうすると、テストとか分けて考えられるので。
— Takashi Yokoyama (@ttyokoyama) 2014, 11月 22
スライド中では紹介しなかったけど、バリデーションに関しては https://github.com/asaskevich/govalidator というのを使ったりしました。
大体のバリデーション項目は関数化されているのであまり凝ったことをしないのであればこれで事が足りた。
読んだ資料
ざっと、Golangのチュートリアルを読んだあとはGo言語の初心者が見ると幸せになれる場所 - Qiitaを読んでどの辺りを参照するようにすれば良いかを掴んだり、あと良さそうなpackageがざっと載ってる https://github.com/avelino/awesome-go を眺めたりした。
あと、Webアプリケーションを作ることに関する諸々のことはうう astaxie/build-web-application-with-golang · GitHub にめちゃくちゃ詳しく載ってる。元は中国語だけど有志によって英語と日本語に翻訳されていて便利だった。
フォーム関係の話とか、セッションとcookie関係の話とか暗号化関係の話とかWebアプリケーション作るときにさっとやれるようになっておきたいことがまとまっていて参照できるのはめでたいって感じでかなり助かった。
本当はサンプルコードを載せたりサンプルアプリケーションを公開したりしたかったのだけど、あいにくMBPのHDDが死んでしまったのでこの辺で勘弁して下さい。
KMCアドベントカレンダー2日目は誰も立候補者が居ないので困っています。よろしくおねがいします。
KMCM
京大マイコンクラブではGo言語を書いて遊びたい部員を募集しています。KMCには入部制限はありません。年齢や学歴、人種、宗教、信条、性別、社会的身分、門地、国籍、経験などは不問です。また活動に関する制約もありません。IRCのチャット越しに会話に参加することだけでも大丈夫です。詳細は下記Webページを御覧ください。