Room A
Intermediate
20 mins.
このセッションの対象者:
セッションを聞くことで得られるもの:
概要: Go は標準パッケージに encoding/gob という独自のメッセージエンコーディング実装を持っています。 gob はバイナリエンコーディングであり、ストリームでの利用を念頭にデザインされています。
しかしながら、 human readable でない点や、言語固有のエンコーディングである点などから、性質を正しく理解することや、性質に合った適切なユースケースを選択することが難しいと考えています。
そこで本セッションでは、 Go が固有のメッセージエンコーディングをデザインするに至った背景について整理しながら、実際のバイナリを眺めて gob の仕様や性質への理解を深めることを目指します。
バイナリを眺めて仕様を理解する過程で、一般的なメッセージエンコーディングとしての性質(サイズ, メッセージ互換性, エコシステム, self-describingかどうか, etc..)について gob を評価し、gobを利用すべき適切なユースケースについても提案します。
実用的な知識を共有しつつ、バイナリエンコーディングを読み解く面白さや、メッセージエンコーディングを比較する際の観点の一部もお伝えできればと考えています。