前職でリリースしてからしばらく経ったので、dry-configurableを使用したアプリケーションを運用してみてという話を書いてみようかと思います。

TL;DR

  • YAMLを使った定数管理ができるGemでもERBが使えるなら別にdry-configurableである必要はない
  • 特に理由がなければアプリの使用用途に合うGem使えばいいんじゃない

dry-configurable

dry-configurableは、設定管理のGemの1つです。 このGemを実験的に使用したアプリケーションを本番運用してみた時の話を書きます。

メリット

  • 動的に設定値を評価することができる(逐次評価するようなことも可能)
  • コードなので変数を定義することができる(複数の設定値の共通箇所を)

正直なところ、これといって感想がないです。 使いやすいとか使いづらいとか、そういったことはなかったです。

デメリット

  • ロジックが書けてしまう

正直なところメリットだと思うのですが、ロジックが書けてしまうのはそれなりのデメリットになるかと思います。 何故かといえば、そのロジックがレビューされるのかどうか怪しい点ですね。 レビューの文化がある組織であれば、大丈夫かもしれませんが、運用チームと開発チームといったチームが分かれている場合、余りよい結果は得られないかもしれません。

結論

ぶっちゃけアプリの使用用途に合うGemであれば何でもよいと思います。 正直なところ、Rubyのコードである必要は今のところ思いつきません。 Redisなどから動的に値を取得するコードを書くこともできると思いますが、そこまでするなら専用のクラスをアプリケーションに組み込んでしまってよいと思います。 そうなってくると、本当にユースケースが思いつかないですね。。。 誰かいい使用用途があれば教えてもらえると助かります。