アノテーション(カスタム属性)と設定ファイル

ここ一ヶ月位、.NET Framework用のDIコンテナにおけるアノテーション(以降カスタム属性)を用いたバインディング機能やコンポーネントの自動登録機能を実装し、みっちりと使ってきたわけだが、自らの予想に反して、カスタム属性による各種の設定は、設定ファイルによるそれと比べて圧倒的に可読性が高く、自己記述的であることを実感できた。なんだかんだいっても静的な設定ファイルによる各種の設定は、昔から使われている方法であり、使い慣れているはずだがそうではなかった訳だ。

全てがそうだとは言わないが、良く考えられた適当なカスタム属性の最大のメリットは、必要な設定が文脈のソースコードと同じか、近い場所に存在するということだ。これは大きい。
あと、意外だったのはある任意の位置(型、プロパティ、メソッド)に複数の種類のカスタム属性を設定しても、それほど混乱しなかったことだ。これは避けなければならないことの一つだと思っていたのだが、カスタム属性に適切な名前をつけてやれば、2つ3つのカスタム属性を多重に指定しても可読性は落ちない。