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のリリースまでもうすぐ!!😇