メルブ

Merb: コードがない方がコードがないよりも速い[ 1 ] [ 2 ]
原作者エズラ・ジグムントヴィッツ
開発者エズラ・ジグムントヴィッチ & イェフダ・カッツ
最終リリース
1.1.3 [ 3 ] / 2010年7月12日 (2010年7月12日
リポジトリ
書かれたルビー
オペレーティング·システムクロスプラットフォーム
タイプWebアプリケーションフレームワーク
ライセンスMITライセンス
Webサイトhttp://www.merbivore.com

MerbRubyのモデル・ビュー・コントローラ型ウェブフレームワークで、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 ]

参考文献

  1. ^ Zygmuntowicz, Ezra. 「No Code is Faster Than No Code」 . Twitter . 2015年4月2日閲覧
  2. ^ Grosenbach, Geoffrey. 「「コードがない方がコードがないより速い」の由来」" . Twitter . Ezra Zygmuntowicz 。20154 月 2 日閲覧
  3. ^ "1.1.3" . GitHub .
  4. ^ Boone, Paul (2008年9月18日). 「Rails/Merbのパフォーマンス比較(mongrel、jruby、tomcat、glassfish)」 . mindbucket.com . 2011年7月14日時点のオリジナルよりアーカイブ
  5. ^ 「Ruby on Rails 3.0 リリースノート」 . Ruby on Rails ガイド. 2020年7月18日閲覧
  6. ^ Zygmuntowicz, Ezra (2006年10月18日). 「ANN: Merb, Mongrel+Erb」 . osdir.com . 2009年12月31日時点のオリジナルよりアーカイブ
  7. ^ジグムントヴィッチ、エズラ (2008 年 12 月 23 日)。「Merb * は * Rails」
  8. ^ a b c d Hansson, David Heinemeier (2008年12月23日). 「MerbがRails 3に統合されました!」 weblog.rubyonrails.org . 2020年7月18日閲覧
  9. ^ a b Katz, Yehuda (2008年12月23日). 「RailsとMerbの統合yehudakatz.com .
  10. ^ Aimonetti, Matt (2008年11月9日). 「Merb 1.0 リリース」 . Merbist .
  11. ^ "merb-core gemの依存関係" . 2010年3月23日.
  12. ^ "merb gemの依存関係" . 2010年3月23日.