Protocol Buffers の IDL で定義された型のオブジェクトを MongoDB に格納できるかどうかを検証しています。前回 に続き、今回は Map や Any について調べました。
MongoDB
公式の C# 実装である MongoDB.Driver (2.5.1) を使用しています。
2018年5月7日月曜日
2018年5月2日水曜日
Protocol Buffers オブジェクトを MongoDB に格納する
Protocol Buffers の IDL で定義された型のオブジェクトを MongoDB に格納できるかどうかを検証しています。gRPC で受け取ったオブジェクトをそのまま MongoDB に格納するようなストーリーを想定しています。
単純な型であれば特に問題なく格納できるのですが、やはりいろいろな前提や制限があるようです。
2018年1月13日土曜日
C# 実装の Google.ProtBuf の Timestamp 型は参照型
C# 実装の Google.ProtBuf の Timestamp 型は参照型です。
.NET の DateTime や TimeSpan などと同じで「日付だから値型だ」と思い込んでいると、わかりにくいバグの原因になります。特に == 演算子と Equals メソッドの結果が異なるのは注意が必要です。データ通信のための型と割り切って使用したほうがよいのかもしれません。
2018年1月9日火曜日
Protocol Buffers のIDL記述(日付型)
Protocol Buffers で定義されているスカラー型の中には日付を意味する型がありませんが、Google の GitHub リポジトリには Timestamp 型があります。この proto ファイルをインポートすれば、C# の DateTime 型を Google.ProtoBuf の Timestamp 型にマッピングさせることができます。
2018年1月8日月曜日
Protocol Buffers のIDL記述(名前空間関連)
Protocol Buffers で IDL をどのように記述するとよいのかを調べています。まずは名前空間から。C# でコーディングを行うときに名前空間や型をスムーズに記述できるような指定方法を探ります。
gRPC はじめました。
大きなサイズのデータ通信を伴うシステム開発の予定があり、データ通信基盤の候補として gRPC を調べ始めました。gRPC は Google が開発している OSS です。HTTP/2 や Protocol Buffers を使った高速データ通信が特徴で、双方向通信もサポートされています。マルチプラットフォーム(Windows, Linux, Mac)・マルチ開発言語(C, C++, C#, Node.js, PHP, Ruby, Python, Go, Java)に対応しているのも大きな魅力です。
開発予定の C# を対象に調査していきます。
開発予定の C# を対象に調査していきます。
登録:
投稿 (Atom)
paiza のスキルチェックをやってみました
いまさら感はありますが、 paiza のスキルチェックをやってみました。指定された時間内にコードを書いてユニットテストにかけ、その結果を基に評価を数値化してくれるというものですが、ゲーム感覚で空き時間を見つけて進めていこうと考えています。 どうやら時間が短いほど高い評価を得...
-
多くのコーディング標準では、グローバル変数は極力使用しないようにしてくださいと説明されています。 グローバル変数が推奨されない主な理由には次のようなものがあります。 どこからでも値を変更できてしまう 値が変更されたことを検知できない 値を変更する複数の処理を同時に実...
-
VB.net のソースコードを見ていると、使い終わった変数を解放するために Nothing を代入しているコーディングを見かけることがあります。これでは必ずしもリソースは解放されませんし、むしろリークの原因になります。Nothing を代入する意味を理解しておく必要があります。 ...
-
.NET Framework では例外の捕捉には Try-Catch を使用しますが、正しく利用されていないのをときどきみかけます。誤った例外処理は補足すべき例外を見逃したり、例外情報を取得できなくなったりする原因になります。 ※これは2013年に書いたものです。