YAML設定の"config"で気になる点

| コメント(0) | トラックバック(0)
これはとても細かいところなんだけど、最近流行の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"
こんな「これが定番ね」程度の決まり事はどうでしょう?

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ