これはとても細かいところなんだけど、最近流行のYAMLでオブジェクトの初期化方法を全部書くよ、的なヤツ:
plugins:
- module: Hoge
config:
foo: 1
bar: 2
みたいなヤツ。これで、"config"ってキーがとても気になるのです。コンフィグは確かに設定なんだけど、設定がコンストラクタの引数になるべきなのかどうか?みたいな、すごい細かい違和感があるのね。
それにCatalystとかに慣れてると、configってパッケージレベルのもの、みたいな感じがする。Catalyst内ではCatalyst::Baseから(今ソースコード見る気しないけど、確かそのあたり)継承してきて、->config()はクラスメソッドになってるはず。これと、例えばPlaggerとかGunghoとかを見ると妙な違和感を感じるわけだ。
HTML::FormFuだと、こういうインスタンス引数はconstructor_argsとかtt_argsみたいになっている。でもconstructor_argsは一般化するには長過ぎるよね。
ってことで、argsはどうかと思うんだけど、どうだろう。これならなんか既存のクラス変数的なconfigとも分離ができるし、DWIM的な言語表現としても有りだと思うんだな。基本的にそれらを同時に表記する事はないと思うんだけど、コンストラクタとクラス設定初期化みたいなのが入り乱れる場合に区別がついていいと思うのです:
plugins:
- module: Hoge
config:
foo: 1
bar: 2
- module: Hoga
args:
foobar: "x"
hoopla: "y"
こんな「これが定番ね」程度の決まり事はどうでしょう?