Merb
Oryginalni autorzy | Ezdrasza Zygmuntowicza |
---|---|
Deweloperzy | Ezra Zygmuntowicz i Jehuda Katz |
Ostateczne wydanie | 1.1.3 / 12 lipca 2010
|
Magazyn | |
Napisane w | Rubin |
System operacyjny | Międzyplatformowe |
Typ | Ramy aplikacji internetowych |
Licencja | Licencja MIT |
Strona internetowa | http://www.merbivore.com |
Merb to wycofany framework sieciowy model-widok-kontroler w Ruby , znany jako prekursor Rails 3. Przyniósł większy nacisk na szybkość i modułowość do Rails 3. Nazwa Merb jest skrótem od „ Mongrel ” i „ Erb ”.
Prekursor i połączenie z Rails 3
stosu kontrolera Rails w „czystym pomieszczeniu”, ale rozwinął się, obejmując kilka pomysłów, które odbiegały od ducha i metodologii Rails w tamtym czasie, w szczególności modułowość komponentów , rozszerzalny projekt API i pionową skalowalność . Opracowali go Ezra Zygmuntowicz i Yehuda Katz. Większość z tych możliwości została dodana do Railsów podczas fuzji Rails 3/Merb. Merb został po raz pierwszy wydany na RubyConf 2008 i od tego czasu rozwój się zatrzymał; Dlatego Rails 3 służy zarówno jako następca Rails 2, jak i następca Merba.
Różnice w stosunku do Ruby on Rails
Projekt Merba próbował odpowiedzieć na kilka krytycznych uwag dotyczących Rails 2:
- brak modułowości komponentów ( konstrukcja monolityczna )
- brak rozszerzalnego API
- brak skalowalności pionowej
Modułowość
Sam Merb obejmował tylko warstwę kontrolera w architekturze MVC i wykorzystywał zestaw uzupełniających się opcjonalnych wtyczek do składania aplikacji. Głównymi punktami integracji były interfejs serwera WWW, warstwa modelu, warstwa widoku oraz rozszerzenia i dodatki kontrolera. Domyślny stos aplikacji Merb obejmował Datamapper dla modeli, ERB dla widoków oraz Rack i Mongrel jako warstwę serwera WWW.
Dobrze zdefiniowany interfejs API
Przed połączeniem Merb i Rails 3 w Railsach brakowało dobrze zdefiniowanego, udokumentowanego, publicznego API dla rozszerzeń i wtyczek, co prowadziło do problemów, gdy zmiany w Railsach psuły łatki małpy wykonywane przez wtyczki. Wraz z połączeniem Rails 3 i Merb, Rails zyskał zdefiniowany publiczny interfejs API z zestawem testów, dając użytkownikom i twórcom wtyczek bardziej przejrzysty, bardziej stabilny interfejs API do budowania, zmniejszając liczbę awarii wtyczek od wydania do wydania.
Wydajność i skalowalność
Niektóre wczesne wersje Rails otrzymały zły rozgłos z powodu braku wydajności, często z powodu dezorientacji programistów co do zapytań ActiveRecord. David Heinemeier Hansson , twórca Rails, stwierdził, że Merb przepisał wiele podstawowych elementów Rails, aby był szybszy, i włączył te zmiany z Merb do połączenia Rails 3, obiecując użytkownikom, że „Rails 3 przyciągnie całą uwagę wydajności, jaką Merb faceci są znani”.