| Merb: コードがない方がコードがないよりも速い[ 1 ] [ 2 ] | |
|---|---|
必要なものはすべて…必要ないものはゼロ | |
| 原作者 | エズラ・ジグムントヴィッツ |
| 開発者 | エズラ・ジグムントヴィッチ & イェフダ・カッツ |
| 最終リリース | 1.1.3 [ 3 ] / 2010年7月12日 (2010年7月12日) |
| リポジトリ | |
| 書かれた | ルビー |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | Webアプリケーションフレームワーク |
| ライセンス | MITライセンス |
| Webサイト | http://www.merbivore.com |
MerbはRubyのモデル・ビュー・コントローラ型ウェブフレームワークで、Rails 3の前身として有名ですが、現在は廃止されています。Rails 3の速度とモジュール性の向上に貢献しました。[ 4 ] [ 5 ] Merbという名前は「Mongrel」と「Erb」を短縮したものです。[ 6 ]
MerbはRailsコントローラスタックの「クリーンルーム」実装[ 7 ]として始まりましたが、当時のRailsの精神と方法論から逸脱したいくつかのアイデア、特にコンポーネントのモジュール性、拡張可能なAPI設計、垂直スケーラビリティを取り入れるようになりました。Ezra ZygmuntowiczとYehuda Katzによって開発されました。これらの機能のほとんどは、Rails 3とMerbの統合時にRailsに追加されました。[ 8 ] [ 9 ] Merbは2008年のRubyConfで初めてリリースされました[ 10 ]が、その後開発は停止しています。そのため、Rails 3はRails 2の後継であると同時にMerbの後継でもあります。
Merb の設計では、Rails 2 に対するいくつかの批判に対処しようとしました。
Merb自体はMVCアーキテクチャのコントローラー層のみを包含し、補完的なオプションプラグイン群を組み合わせてアプリケーションを構築していました。主要な統合ポイントは、Webサーバーインターフェース、モデル層、ビュー層、そしてコントローラー拡張機能とアドオンでした。Merbのデフォルトのアプリケーションスタックには、モデル用にDatamapper、ビュー用にERB、そしてWebサーバー層としてRackとMongrelが組み込まれていました。 [ 11 ] [ 12 ]
MerbとRails 3の統合以前、Railsには拡張機能やプラグイン用の明確に定義され、文書化された公開APIが不足していたため、Railsの変更によってプラグインによって実行されたモンキーパッチが壊れてしまうという問題が発生していました。Rails 3とMerbの統合により、Railsはテストスイートを備えた明確な公開APIを獲得し、[ 9 ]ユーザーとプラグイン開発者はより明確で安定したAPIを使用して開発を行うことができ、リリース間のプラグインの破損が減少しました。[ 8 ]
Railsの初期のバージョンのいくつかは、ActiveRecordクエリに関する開発者の混乱が原因で、パフォーマンス不足で悪評を浴びました。Railsの作者であるDavid Heinemeier Hanssonは、MerbがRailsのコア部分の多くを高速化するために書き直したと述べ、[ 8 ] Merbからの変更をRails 3のマージに組み込み、「Rails 3はMerb開発者が誇るパフォーマンスへの配慮をすべて取り入れるだろう」とユーザーに約束しました。[ 8 ]