言語に依存しない構成ファイル形式

言語に依存しない構成ファイル形式

今日、多くのプロジェクトでは複数のプログラミング/スクリプト言語を使用し、標準を採用しています。乾いた伝統的に同じ情報が必要な場合は、別々の構成ファイルがあってはなりません。いくつかの調査の終わりに、/etcUbuntuで互換性のない構文が多用されていることがわかりました。

  • varname=value-/etc/adduser.conf
  • varname: value-/etc/debconf.conf
  • varname = value-/etc/deluser.conf
  • $varname value /etc/insserv.conf
  • varname value-/etc/login.defs
  • set varname value-/etc/lftp.conf
  • [section]
        varname = value
    

    /etc/mke2fs.conf

  • section
        label varname value
        set varname value
    

    /etc/smartd.conf

私が知る限り、これらのどれも」YamlまたはXMLまたはJSON」(そのうちの一つはイニしかし)。単純値(debug = true、、、)、単純値配列()、および他の変数を参照する値()を提供する必要があるプロジェクトにwelcome = "Hello world!"どのような形式を推奨し、その理由を説明しますか?threads = 4servers = [dev, test, prod]thread_msg = "Using $threads threads"吹く真珠そしてPHP

ベストアンサー1

最初の3つは構成形式ではなく直列化形式です。これらの形式は、機械が読み書きするのは簡単ですが、人間が読み書きすることは容易ではありません。するいいえ設定に使用してください。ユーザーがあなたを嫌うかもしれません。

また、これらのファイルの一部はNAME valueペアで構成されています。他のファイルは実際の構成ファイルではなくシェルファイルである可能性があります。これは、基本的に処理のためにシェルから取得できることを意味します。

INIやApache Styleなどの実際の構成形式を使用することをお勧めします(Config::Generalパールから)

Config::Anyユーザーがデフォルトで目的の形式を選択できるようにするため、設定されたPerlモジュールをロードするのに最適です。

おすすめ記事