仕事でGo言語をよく書くのですが、Goは言語機能が多くはないためボイラープレートやコピペが増えがちです。 特に他の言語でいうところのgenericsがあれば解決するのに、と思うことがよくあるのですが、現在のGoにはそのような機能は存在しない*1ため、go generate を活用したコード生成で代用することが多いと思います。 一方で、目的のコードを生成できるツールが存在しない場合、ツールをゼロから自分で実装するのは手間なので、本来はコード生成したい場合でも、実際にはコピペで済ませてしまうことがよくあります。 何か良い手はないかと探していたのですが、gomplateを使うと手軽に目的を達成できたので紹介します。 gomplate とは gomplateはGoで書かれたテンプレートレンダラーで、さまざまなデータソースからデータの入力を受け付け、それをGoのtemplateにレンダリングするコマ