Go勉強会 Webアプリケーション編 #1を開催しました!
こんにちは。
IDOMで主にNORELの開発を行っている、エンジニアの小林です。
先日、弊社にてGo言語勉強会「Webアプリケーション編」を開催させていただきました。
勉強会概要
今までは A Tour of Goの勉強会をMAMORIO株式会社様のオフィスで開催していただいていましたが、一段落したこともあり、今回は気持ちを新たにIDOMのオフィスでの開催していただくこととなりました。
講師を努めて下さったのは、株式会社Origamiで普段はGoやSwiftを使って開発している、@tikidunponさんです。
教材となるのは Go Web Examples ですが、なんと勉強会用に和訳ページも用意していただきました。
当日の会議室の都合で、MAX15人での募集となりましたが、あっという間に埋まってしまい、出席できなかった方にはご迷惑をおかけしました。
(次回は広い場所を用意して広々と使いたい・・!
当日の様子です。
20:00〜という遅めの開催ですが、大勢の人に集まっていただきました。
Go言語の注目度の高さが伺えますね。
最初はアイスブレイクとして10分程度名刺交換や挨拶などを行いました。
こういう所でエンジニアの輪が広がるのはいいですね!
大きめのモニタに映した状態で説明していただきました。
講師の@tikidunponさん。
Go言語での愛用エディタはVS Code。
勉強会ふりかえり
Hello World編
- HandleFuncにてリクエストパスに対するResponseの定義
- HTTP接続のリッスン
HTTP Server編
- 静的なアセット(画像ファイル等)の配信
Qiitaの記事通りにserver.go
を書き、以下のように /static
フォルダと画像を配置します。
実際に起動すると、ディレクトリ構造がブラウザ上から確認できるようになりました。
画像のリンクをクリックすると、ちゃんと画像も表示されます。
Routing編
- gorilla/mux パッケージのインストール
- Routerの設定
- go-chi の紹介
Qiitaの記事の内容では、pathに指定した /books/{title}/page/{page}
のtitleとpageがパラメータとして渡され、出力する文字を置き換えるようになっています。
出力は以下の通り。
他にも、ハンドルするホストを制限したり、HTTPメソッドの制限など、gorilla/mux
のルーティングでは様々な設定ができることに触れられていました。
また、gorilla/mux
と似たルーティングをしてくれるライブラリとして go-chi/chi
を紹介していました。
次回開催予定
次回、Go勉強会 Webアプリケーション編 #2(仮) は10月中旬頃を予定しております。
connpassで公開予定ですので予定の合う方は是非ご参加下さい!!
まとめ
今回は Go でWebサーバーを立てるための入門編となりました。
普段Spring Bootなどのフレームワークを利用していると、HTTP接続のリッスンなど明示的に書くことがあまり無い部分に触れることができました。
また、実際の勉強会ではライブラリのコードを直接参照することで、gorilla/mux
や go-chi/chi
の違いなどを説明しており理解が深まると同時に、ライブラリのコードも追うことができ、何かあっても直接コードを読んで対応できるという安心感が出ました。
Go ではフレームワークを使わずに、Webサーバーとして利用することも多いようです。
今回の復習だけではなく、A Tour of Go の復習もしっかりと行って、着実にGoでの開発スキルを身につけたいと思います。