Ridge

Ridge

[3] Ridge (りっじ) は、 Perl 用の WAF です。

[4] 平成20年代前半頃の株式会社はてなWebサービスの多くで採用されていました。

[5] 当時のはてなインターンの教材でも使われていました。

[7] 変数 $r から API を呼び出すのが特徴的です。

[8] 初期は mod_perl と使う (または server.pl と呼ばれるローカルサーバー用の Perl で書かれた HTTPサーバーと使う) 設計でしたが、 後期は Plack ベースに改められていました。

[9] HTTPサーバーと組み合わせるかわりにテストスクリプトと接続する仕組みがあり、内部テスト (internal test) と呼ばれていました。

[2] wakaba/perl-test-ridge-internal: Test: :Internal - Internal tests for Ridge, https://github.com/wakaba/perl-test-ridge-internal

[10] 内部テストテストスクリプトHTTP要求オブジェクトを組み立てて HTTP応答オブジェクトを得て検査するのですが、アプリケーションサーバーPerl コードとテストスクリプトが同じプロセスで動作し密結合していました。

[11] テストを書く上でこれはこれで便利なこともあって、 例えばテスト実行前の事前状態の設定のためにテストスクリプトから直接アプリケーション内の関数を呼び出したりデータベースにアクセスしたりできるのですが、 それが原因で実サーバーの動作とテストの動作が違うなどの弊害も多くありました。

[12] そのため末期になるとアプリケーションサーバーテストスクリプトを別プロセスで実行し HTTP だけで通信する外部テストへと志向していきました。

[6] ORMMoCo と併用されるのが普通でした (が依存関係はありません)。

[1] Ridge (disambiguation) - Wikipedia, the free encyclopedia ( 版) http://en.wikipedia.org/wiki/Ridge_(disambiguation)

[13] $rr はたぶん Ridge の意味なのでしょうけど、 それだけでなく mod_perl 的な慣習を引き継いでいるのかもしれません。

[14] RIDGE_ENV