体はドクペで出来ている

インフラ、Goの割合が多い技術ブログ

Go言語によるWebアプリケーション開発 第1章でやったことと感想

始めに

Go言語によるWebアプリケーション開発 第1章「WebSocketを使ったチャットアプリケーション」が終わったので得られた事と感想をまとめます。

得られたこと

  • 構造体をベースにしたチャットアプリケーションのモデリング方法
  • 標準パッケージを使ったHTTPリクエストの処理方法
  • http.Handler インターフェースを実装
    • HTMLテンプレートをレンダリングするハンドラーの作成方法
    • 基本的なWebSocketハンドラーの作成方法
  • sync.Once を使い1度だけ処理を行う方法
  • goroutine, channelを使ったメッセージパッシング
    • チャットのクライアント・サーバー間でやり取りするメッセージ内容
  • ヘルパー関数を使った簡潔なコードの書き方
  • 基本的なログ出力のやり方
  • TDDの基本的な進め方
  • 非公開な構造体を公開インターフェースとして返却する方法とその意義

所感

まず、この書籍は入門向けではありません。最低でも A Tour of Go の内容を理解していないと何が何だかわからないと思います。文法等は勿論のことchannelやinterface等についても殆ど説明は無く、作りたいものをある程度は自分で調べてGoでコーディングできるくらいの人向けです。

さて1章では簡単なステートフルWebチャットアプリケーションを作りました。機能としてはログインもユーザー名表示も無い本当に最小限度のものでしたが、ちゃんと複数ユーザーでリアルタイムなWebチャットを行うことができるものです。

WebSocketを使ったりしていたのでどんな重厚なコードになるのかと思っていましたが、案外簡単な実装でそれらしく動くものが出来上がり拍子抜けしました。ライブラリー(と的確な教材)はありがたいですね。

普段仕事でGAE/Goを使ったWebアプリを書いているので、技術的に大きな収穫があったとはぶっちゃけ言い難いのですがInterfaceの実装やTDDの考え方の部分については今後に活かせそうでした(注:書籍をやってからこの記事を書くまでに結構間が空いています。今現在、これで学んだことをきっかけに踏み出して色々活かしています)。