| 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 ]
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」。
- ^ a b c d Hansson, David Heinemeier (2008年12月23日). 「MerbがRails 3に統合されました!」 weblog.rubyonrails.org . 2020年7月18日閲覧。
- ^ a b 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日.