Go でオプション引数を実現したいときによく Functional Options Pattern が使われるかと思います。このデザインパターンは便利な一方、構造体の中でオプション引数を用意したい全てのフィールドに対して、オプション引数用の関数を実装する必要があり、記述すべきコードが多くなりがちです。 この問題を解決すべく、Functional Options Pattern を実現するためのコードを自動生成する CLI ツール 「foggo」を作りました。 Functional Options Pattern とは Go はそのシンプルな言語仕様から、オプション引数を提供していません。 オプション引数はデフォルト引数やオプションパラメータとも呼ばれ、Python だと可変長引数である *args や *kargs のことを指します。 通常の関数であれば特に問題ないのですが、構造体の初期化