生涯未熟

プログラミングをちょこちょこと。

Golang Weekly #172

Typed nils in Go 2 | Dave Cheney

Goのnilについてハマったことは誰にでもあるはず。
そんなnilについての記事です。

この記事中のコードをもし自分が書いた場合、サクッと比較対象のnil(*T)(nil) としてしまうのだが、どうするのがベストプラクティスなのだろう・・・?
もう少し、このnilが扱いやすくなると良いですね:-)

Context should go away for Go 2 — faiface blog

contextについての考察記事。

記事内では context.Value について、痛烈に批判しており、

  • 静的型付けではない
  • 特定の関数が扱うキーと型をドキュメント化しなければならない
  • スレッドローカルストレージとよく似て柔軟性がなく、使用法・構成・テストが複雑になる
  • 名前のコンフリクトが起こる場合がある

といった理由を挙げています。

確かに、 context パッケージからは切り離した方がいいのかもしれませんね🤔

Always Be Closing – Square Corner Blog – Medium

Goのリソースリークについて。

この記事の筆者が運用しているサービスにて、突然メモリの使用量が200MBから数GBにまで跳ね上がったことを発端に調査したところ、
リクエストごとにメタデータを約17時間保持するようになっており、それが原因でした。

何故そのようなことになったかというと、contextによるリクエストのキャンセルまでの時間が60,000ミリ秒とするところが60,000秒(約17時間)としてしまったせいだったのです・・・:-(

contextの使用法から、pprofを使った問題発見までが物凄く丁寧に書かれている良い記事です。

Go 1.9 Release Candidate 2 is released

出ました!Go 1.9 rc2!
Go1.9のリリースまでもうすぐ!!😇