私はしばらくの間、構成ファイルとコードとの関係について検討してきましたが、日によって、風の方向によっては、私の意見が変わったようです。Lispの学習中に最初に得た気づきにどんどん戻っていきますが、データとコードにはほとんど違いがありません。これは、構成ファイルについても二重に当てはまるようです。右から見ると、Perlスクリプトはperlの構成ファイルにすぎません。これは、QAや、構成ファイルの変更を担当する必要がある人のような分業などのタスクにかなり重い結果をもたらす傾向があります。
設定ファイルから本格的な言語へのクリープは一般に遅く、一般的なシステムを作りたいという欲求によって引き起こされているようです。ほとんどのプロジェクトは、ログを書き込む場所、データを検索する場所、ユーザー名とパスワードなどのいくつかの構成項目を備えた小さなものから始まります。しかし、その後、プロジェクトは成長し始めます。機能をオンまたはオフにできるようになります動作のタイミングと順序が制御され始め、必然的に誰かがそれにロジックを追加し始めたいとします(たとえば、マシンがXの場合は10、マシンがYの場合は15を使用します)。ある時点で、設定ファイルはドメイン固有の言語になり、その部分では不十分に記述された言語になります。
準備ができたので、次は私の質問です。
- 設定ファイルの真の目的は何ですか?
- 設定ファイルをシンプルに保つように試みるべきですか?
- それらに変更を加える責任は誰にあるべきですか(開発者、ユーザー、管理者など)?
- それらはソース管理されるべきですか(質問3を参照)?
前に言ったように、これらの質問に対する私の答えは常に変化しますが、今は考えています:
- プログラマーでない人が大きな動作のチャンクを素早く変更できるようにするため
- はい、ざらざらしていないものはすべてコードに含める必要があります
- ユーザーは構成ファイルを担当し、プログラマーは構成ファイルとコードの間の構成層を担当して、アプリケーションをより細かく制御する必要があります。
- いいえ、しかしより細かい中間層は