October 2018
Beginner to intermediate
256 pages
3h 35m
Japanese
本補遺は日本語版オリジナルの記事です。本稿ではgo generate†1の紹介とその利用方法を解説します。
4章でパイプラインを構築する際に空インターフェース型(interface{})を利用していました。その理由として原著者は以下の2つを挙げています。
1に関しては、言うまでもなく実プロジェクトの製品開発において考慮する必要のない理由です。型を付けることで、ビルド時に誤りを検出できたり、可読性が向上したり、と言った利点が生まれますし、通常は静的な型付けをするほうがパフォーマンスも向上します。
2に関して、パイプラインにおいて途中のステージでデータの加工をしないことはまずありえません。その際にステージの入力と出力で型が異なることは大いにありえます。したがって、仮にステージを表す関数のシグネチャを変えずに済んだとしても、ステージ内の実装を変更する必要は十分にありえるでしょう。そうしたことを鑑みると、空インターフェース型で持ち回しても、はじめから入力と出力に型を与えても大差がないように思われます。
このように、型をきちんと使ってパイプラインを定義することの意義は十分あるのですが、一方で本書内の例のような、ステージを容易に入れ替えられるような状況では空インターフェース型を利用したくなることもあるでしょう。
そういった要望に対応するため、Go 1.4よりgo generateが導入されたのですが、本文中ではわずかに触れられただけでした。そこで、補遺としてgo ...