設定ファイル
ナビゲーションに移動
検索に移動
設定ファイルとは、ソフトウェアの変更可能な設定を記載したファイルの総称。
概要[編集]
ソフトウェアにおいて、ソースコードに可変にすべきパラメーターを直接記述[1]してしまうのは柔軟性を欠くので、外部ファイルに可変のパラメーターを書いておき、プログラムから読み込んで使用できるようにしておく。このファイルのことを、設定ファイルという。
1つの例として、Webアプリケーションの設定ファイルがある。Webアプリケーションを運用する場合、実運用環境(本番環境)とは別に、テスト環境をいくつか設けることが一般的である。この時、環境が異なると同じ設定が使用できないことがあるので、環境ごとに設定ファイルを作り、同じアプリケーションを設定ファイルだけを変えて動作するようにしておくのである。
他にも、外観をカスタマイズできるようにしたり、プラットフォームの差異を吸収したりする場合などに使用される。
設定ファイルとして正しくない状態で変更を保存してしまった場合、ソフトウェアが動作しなくなる恐れがあるので、変更前にはファイルをバックアップしておくのが望ましい。
設定ファイルの形式[編集]
設定ファイルの形式には、テキストファイルの場合はデータ記述言語を使用することが多い。バイナリーファイルの場合は、通常は専用のアプリケーションもしくはアプリケーションに付属している設定ファイル編集機能を使用する。
Unix系環境およびそれに由来するソフトウェアの設定ファイルには、テキストファイルだが伝統的に独自形式のものが多くある。
以下に、代表的なテキストファイル形式のものを挙げる[2]。拡張子は、一般的なものを記載。
- INIファイル
- 拡張子は
.ini
。 - 過去にWindowsの設定ファイルとして使われていたものが有名。Windowsでは互換性のため残されていたものがあったが、最近ではほとんど使われなくなった。
- YAML
- 拡張子は
.yaml
または.yml
。 - シンプルかつ軽量。データ記述言語としても使用される。言語を問わず、広く使われている。
- XML
- 拡張子は
*.xml
。 - World Wide Web Consortium(W3C)が仕様を策定しているマークアップ言語。データ記述言語としても使われる。
- 2000年頃のJava界隈では、XMLを設定ファイルに使用することが多かったが、XMLエディターを使わずにテキストエディターで編集する場合に面倒なので、2010年代には他の軽量な形式が使われることが多くなった。
- JSON
- 拡張子は
.json
。 - 言語を問わずデータ記述言語として使用されることが多いが、一部のJavaScript関連技術では設定ファイルとしても使用されている。
- TOML
- 拡張子は
.toml
。 - 最小限かつ明確さを重視したフォーマットで、構文はINIファイルに似ているが互換性は無い。
- 登場時期(初版)は2013年と、2020年時点では比較的新しい形式。
- HOCON
- 拡張子は
.conf
。 - Lightbend社(旧Typesafe)が発表した形式。JSONを拡張した形式になっている。主にJavaおよびJVM言語で使用されている。
- Javaプロパティーファイル
- 拡張子は
.properties
。 - Javaが標準ライブラリーでサポートしている設定ファイル形式。デフォルトではマルチバイト文字をASCII形式にエンコードした状態で記録するため、使い勝手があまり良くない[3]。最近では代わりにYAMLやHOCONを使うことが多くなっている。