この章の話はずばり
環境変数
これにつきます
つまり
アプリケーションの設定とは、デプロイ(ステージング、本番、開発環境など)の間で異なり得る唯一のものである
具体的には
- データベース、Memcached、他のバックエンドサービスなどのリソースへのハンドル
- Amazon S3やTwitterなどの外部サービスの認証情報
- デプロイされたホストの正規化されたホスト名など、デプロイごとの値
など
ポイント
- 設定はコードから厳密に分離されていること。定数ではもたない
- 秘匿情報を漏洩しない。OSSにできるかどうか
- アプリケーション内部の設定は、ここでの "設定" の定義には含まれない。Railsの
config/routes.rb
とか -
dev
,stg
,production
のように環境ごとの管理は新しい環境ができたときにスケールしづらいので、そのようにグルーピングして設定を分けたりしないほうがよい