ウェブアプリケーションと動的再構成と djbdns

Pathtraq の (少なくとも一部) は設定ファイルにテストコードがついている。あと、動的再構成をサポートしている。でも今日あらためてその辺を見ていると optimal じゃない。

やっぱり djbdns のやり方が最高やね。

  • 設定ファイル本体は高速にアクセス可能なバイナリファイル (cdb)
  • 設定ファイルのソースはテキストで書く
  • make コマンドを実行すると以下が行われる
    • 設定ファイルの文法確認
    • cdb へ変換してテンポラリファイルに保存
    • 設定ファイル本体を新しいものにアトミックに差し替え
  • デーモンは設定ファイルの mtime? を見ていて、ファイル更新されたら再読み込み

厳密にはちょっと違うところもあるけど設計としてはこのとおりのはず。速度と保守性に優れ、かつ単純で美しい。

perl ベースのウェブアプリなら、バイナリファイルの設定形式を Storable とかにしとくといいのかなと思った。