kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

「Go言語によるWebアプリケーション開発」1章 WebSocketを使ったチャットアプリケーション

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

最近、go言語でずっと書いており、色々できることを増やしていきたいと思っています。

WEBアプリケーションに現在利用していますが、ようやく使い勝手が理解できてきた感じです。

ただ使いづらい部分や書き方に悩むようになったので、知識を増やしたいと思うようになったので、今回の本を読んでいく感じです。

今回の記事では、自分がなにを学んだのかを本の章ごとに書いていき、1冊をしっかりと読んでみる。という企画のもとに書いていきます。

コードについては、記事には載せません。

goroutine

非同期の処理の書き方については、初めてちゃんと書いて動作するプログラムを書きました。

forの無限ループが出てきますが、goroutineの場合はOKみたいです。

C#でサービスを書いたことがありますが、同じ原理のものが簡単に作れる気がします。Windowsサーバーはあまり得意でないため、C#Windowsサービスを書くならGoでgoroutineを使ったサービスにすると思います。

言語が変われば認識を変える必要がありますね。

goroutineについては結構書かないと、身につかない気がします。

スレッドが気軽に書けるというのはすごく理解できるとおもいます。

webテンプレート

sync.Onceにて、一度のみの処理をおこなっています。

テンプレート読み込みは一度行うようになっており、最初の表示時に動作していることを認識。

ログ出力

実際のプロダクトでログの扱いについては、運用になった時に重要になります。

ログを出力したいけど、本番でも出力し続けるとパフォーマンスに影響がでることもあります。

Androidでよくwarningやdebugのログの種類の出力を行なっていたが、最初から仕組みがない場合はあまり思いつかないですね。

今回もログを出力しているプログラムがあり、fmtで書いているからあとで消す必要があるのは気が重いです。

最初からログの扱いをまとめておいたほうがいいですね。

debug, releaseとログの出力場所を柔軟にできるライブラリがないか探しておきたいと思いました。

チャットプログラムについて

ここまで気軽にチャットプログラムが書けるのは、10年プログラムやっていても驚きました。

環境構築さえできれば、かなり色々なことができる世の中になっていますね。

次は「認証」です。