2018年2月25日日曜日

gRPC の非同期メソッドのステータスは一度しか取得できない 3/3 訂正調査中

gRPC のストリーミング通信のステータスを取得する GetStatus メソッドは一度しか呼び出せません。一度しか呼び出さないように注意すればよいだけのですが、ラッパーや拡張メソッド形式の汎用処理を実装するときに少しはまりました。


2018年2月20日火曜日

クラスやメンバのスコープを広くしすぎない

クラスやプロパティ・メソッドのスコープは、それが利用される範囲に応じて適切に設定する必要があります。「Public にしておけばどこからでも参照できるから楽」という考え方は危険です。

※これは2013年に書いたものです。

2018年2月10日土曜日

gRPC 1.9.0 がリリースされていました

gRPC を使ったプログラムをデバッグ実行していると TaskCanceledException 例外が頻発するようになりました。VisualStudio のデバッグコンソールが例外ログで埋まる結果に。調べてみると、gRPC の Channel の内部で 1 秒ごとにタイムアウトが発生しているようです。

2018年2月8日木曜日

Catch 句を空にするのは例外をなかったことにすること

.NET Framework では例外の捕捉には Try-Catch を使用しますが、正しく利用されていないのをときどきみかけます。誤った例外処理は補足すべき例外を見逃したり、例外情報を取得できなくなったりする原因になります。

※これは2013年に書いたものです。

2018年2月1日木曜日

変数に Nothing をセットしてもリソースは解放できません

VB.net のソースコードを見ていると、使い終わった変数を解放するために Nothing を代入しているコーディングを見かけることがあります。これでは必ずしもリソースは解放されませんし、むしろリークの原因になります。Nothing を代入する意味を理解しておく必要があります。

※ これは2013年に書いたものです。 C# でも Nothing が null になるだけで全く同じです。


paiza のスキルチェックをやってみました

いまさら感はありますが、 paiza のスキルチェックをやってみました。指定された時間内にコードを書いてユニットテストにかけ、その結果を基に評価を数値化してくれるというものですが、ゲーム感覚で空き時間を見つけて進めていこうと考えています。 どうやら時間が短いほど高い評価を得...