JA

Railsアプリケーションを動かすには、Railsやインフラの設定、アプリケーション固有の設定など、数多くの設定が必要です。その管理方法にも、環境変数、Credentials、YAML、DB、PaaSやIaaSの設定管理機能、各種gemなど、多くの選択肢があります。さらに、管理した設定値をアプリケーションからどのように参照するかにも、ENV、config.x、独自のクラスやメソッドなどの選択肢があります。これらをどのように組み合わせれば、開発者がアプリケーション開発に集中できるでしょうか。

設定の管理方法は、アプリケーション開発の初期には深く検討されないことも少なくありません。そして、問題に気づいてもリファクタリングされにくい領域です。設定の変更は障害につながる可能性があり変更の心理的ハードルが高いうえ、そもそも設定の管理方法をリファクタリングするという発想自体が生まれにくいからです。

この発表では、設定を「起点・中継点・終点」という流れと、秘密性や変更タイミングなどの性質から整理したうえで、「まとめる」「確認しやすい形にする」という2つの方針を軸に、Railsアプリケーションにおける設定の設計方法を説明します。発表を通じて、アプリケーションの規模や要件に応じて設定方法を選択し、設定に関する負債を溜めにくい設計を考えられるようになることを目指します。

Magenta Hall
DAY 2 15:50 – 16:20
Shinichi Maeshima

株式会社ウィルネット代表。複数の会社の技術顧問をしています。ginza.rb主催。著書にパーフェクトRuby on Rails(共著)