必要なものはすべて… 必要ないものはゼロ | |
| 原作者 | エズラ・ジグムントヴィッツ |
|---|---|
| 開発者 | エズラ・ジグムントヴィッチ & イェフダ・カッツ |
| 最終リリース | 1.1.3 [3]
/ 2010年7月12日 |
| リポジトリ |
|
| 書かれた | ルビー |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | Web アプリケーション フレームワーク |
| ライセンス | MITライセンス |
| Webサイト | メルビボア |
MerbはRubyのモデル・ビュー・コントローラ Webフレームワークで、現在は廃止されていますが、Rails 3の前身として知られています。Rails 3では、速度とモジュール性に重点が置かれました。[4] [5] Merbという名前は、「Mongrel」と「Erb」を短縮したものです。[6]
Rails 3の前身であり、Rails 3と統合
MerbはRailsコントローラスタックの「クリーンルーム」実装[7]として始まりましたが、当時のRailsの精神と方法論から逸脱したいくつかのアイデア、特にコンポーネントのモジュール性、拡張可能なAPI設計、垂直スケーラビリティを取り入れるようになりました。Ezra ZygmuntowiczとYehuda Katzによって開発されました。これらの機能のほとんどは、Rails 3とMerbの合併時にRailsに追加されました。[8] [9] Merbは2008年のRubyConf [10]で初めてリリースされ、その後開発は停止しています。そのため、Rails 3はRails 2の後継であると同時にMerbの後継でもあります。
Ruby on Railsとの違い
Merb の設計では、Rails 2 に対するいくつかの批判に対処しようとしました。
- コンポーネントのモジュール性の欠如(モノリシック設計)
- 拡張可能なAPIの欠如
- 垂直スケーラビリティの欠如
モジュール性
Merb自体はMVCアーキテクチャのコントローラー層のみを包含し、補完的なオプションのプラグインスイートを組み合わせてアプリケーションを組み立てました。主な統合ポイントは、Webサーバーインターフェイス、モデル層、ビュー層、コントローラー拡張機能とアドオンでした。Merbのデフォルトのアプリケーションスタックには、モデル用のDatamapper、ビュー用のERB、Webサーバー層としてRackとMongrelが組み込まれていました。 [11] [12]
明確に定義されたAPI
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]
参考文献
- ^ Zygmuntowicz, Ezra. 「No Code is Faster Than No Code」. Twitter . 2015年4月2日閲覧。
- ^ Grosenbach, Geoffrey. 「「コードがないほうがコードがないよりも速い」の由来」。Twitter。Ezra Zygmuntowicz。2015年4月 2 日閲覧。
- ^ “1.1.3”. GitHub .
- ^ Boone, Paul (2008年9月18日). 「Rails/Merb パフォーマンス比較 (mongrel、jruby、tomcat、glassfish 上)」. mindbucket.com . 2011年7月14日時点のオリジナルよりアーカイブ。
- ^ 「Ruby on Rails 3.0 リリースノート」。Ruby on Rails ガイド。2020年7 月 18 日閲覧。
- ^ Zygmuntowicz, Ezra (2006年10月18日). 「ANN: Merb, Mongrel+Erb」. osdir.com]。2009年12月31日時点のオリジナルよりアーカイブ。
- ^ ジグムントヴィッチ、エズラ (2008 年 12 月 23 日)。 「Merb * は * Rails」。
- ^ abcd Hansson, David Heinemeier (2008年12月23日). 「MerbがRails 3に統合されました!」weblog.rubyonrails.org . 2020年7月18日閲覧。
- ^ ab Katz, Yehuda (2008 年 12 月 23 日). 「Rails と Merb の統合」. yehudakatz.com .
- ^ Aimonetti, Matt (2008 年 11 月 9 日). 「Merb 1.0 がリリースされました」. Merbist .
- ^ 「merb-core gem の依存関係」 2010 年 3 月 23 日。
- ^ 「merb gem の依存関係」 2010 年 3 月 23 日。
外部リンク
- Merbivore - マーブ公式サイト
