Go Conference

Room A

Intermediate

20 mins.

このセッションの対象者:

  • メッセージエンコーディングの仕様に興味がある方
  • gob encoding の適切なユースケースが気になる方
  • バイナリリーディングに興味がある方

セッションを聞くことで得られるもの:

  • gob encoding の仕様と性質がわかる
  • メッセージエンコーディング選定にあたって評価すべき観点の一部を知れる
  • バイナリエンコーディングを読み解くプロセスがわかる
  • gob encoding を利用すべき適切なユースケースがわかる

概要: Go は標準パッケージに encoding/gob という独自のメッセージエンコーディング実装を持っています。 gob はバイナリエンコーディングであり、ストリームでの利用を念頭にデザインされています。

しかしながら、 human readable でない点や、言語固有のエンコーディングである点などから、性質を正しく理解することや、性質に合った適切なユースケースを選択することが難しいと考えています。

そこで本セッションでは、 Go が固有のメッセージエンコーディングをデザインするに至った背景について整理しながら、実際のバイナリを眺めて gob の仕様や性質への理解を深めることを目指します。

バイナリを眺めて仕様を理解する過程で、一般的なメッセージエンコーディングとしての性質(サイズ, メッセージ互換性, エコシステム, self-describingかどうか, etc..)について gob を評価し、gobを利用すべき適切なユースケースについても提案します。

実用的な知識を共有しつつ、バイナリエンコーディングを読み解く面白さや、メッセージエンコーディングを比較する際の観点の一部もお伝えできればと考えています。

Yuya Okumura

Yuya Okumura

株式会社LayerX

低レイヤや暗号関連の技術に興味があります