[3] 
[DFN[[RUBY[Ridge][りっじ]]]]
は、
[[Perl]]
用の
[[WAF]]
です。

[4] 
平成20年代前半頃の[[株式会社はてな]]の[[Webサービス]]の多くで採用されていました。

[5] 
当時の[[はてなインターン]]の教材でも使われていました。

[7] 
変数 [DFN[[CODE[$r]]]]
から 
[[API]]
を呼び出すのが特徴的です。

[8] 
初期は [CODE[mod_perl]] と使う (または [DFN[[CODE[server.pl]]]] 
と呼ばれる[[ローカルサーバー]]用の
[[Perl]] で書かれた [[HTTPサーバー]]と使う) 設計でしたが、
後期は [[Plack]] ベースに改められていました。

[9] 
[[HTTPサーバー]]と組み合わせるかわりに[[テストスクリプト]]と接続する仕組みがあり、[DFN[内部テスト]]
([DFN[internal test]])
と呼ばれていました。


[2] 
[CITE@en[wakaba/perl-test-ridge-internal: Test: :Internal - Internal tests for Ridge]], [TIME[2023-04-17T09:43:07.000Z]] <https://github.com/wakaba/perl-test-ridge-internal>

[10] 
[[内部テスト]]は[[テストスクリプト]]が [[HTTP要求]]オブジェクトを組み立てて
[[HTTP応答]]オブジェクトを得て検査するのですが、[[アプリケーションサーバー]]の 
[[Perl]] コードと[[テストスクリプト]]が同じプロセスで動作し[[密結合]]していました。

[11] 
テストを書く上でこれはこれで便利なこともあって、
例えばテスト実行前の事前状態の設定のためにテストスクリプトから直接アプリケーション内の関数を呼び出したりデータベースにアクセスしたりできるのですが、
それが原因で実サーバーの動作とテストの動作が違うなどの弊害も多くありました。

[12] 
そのため末期になると[[アプリケーションサーバー]]と[[テストスクリプト]]を別プロセスで実行し
[[HTTP]] だけで通信する[[外部テスト]]へと志向していきました。




[6] 
[[ORM]] の [[MoCo]] と併用されるのが普通でした (が依存関係はありません)。

[1] [CITE@en[Ridge (disambiguation) - Wikipedia, the free encyclopedia]]
([TIME[2009-09-12 11:18:47 +09:00]] 版)
<http://en.wikipedia.org/wiki/Ridge_(disambiguation)>

[13] 
[CODE[$r]] の [CODE[r]] はたぶん [['''R'''idge]] の意味なのでしょうけど、
それだけでなく [[mod_perl]] 的な慣習を引き継いでいるのかもしれません。


[14] 
[CODE[RIDGE_ENV]]