Sinatra vs Rails
мая 28, 2011 | Published in Sinatra | 7 Comments
Несколько мнений из интернетов:
- Sinatra — фреймворк для разработки простых веб приложений.
- Sinatra — простой фреймворк для прототипирования.
- Sinatra — отличный фреймворк, на котором построено несколько серьезных проектов.
Из этих трех мнений истинным является лишь последнее. Sinatra — действительно простой фреймворк, в котором гораздо меньше «волшебства» чем в Rails, однако который позволяет создавать приложения не менее сложные чем с использованием Rails.
Я, как и многие другие люди, считаю, что Rails не подходит для разработки CMS и склоняюсь в сторону Sinatra когда речь заходит о CMS, а тем более о движке блога, который является самым простым CRUD-приложением. Rails избыточен для таких разработок и больше подходит для того, что называют модным словом «стартапы».
Самое большие отличия Sinatra от Rails заключается в том, что в Sinatra нет restful resources и нет MVC. Но все это можно легко реализовать самостоятельно.
Sinatra минималистичный фреймворк, который представляет Programmer-way, вместо навязываемого Rails-way. В Sinatra вы можете создавать любую структуру приложения.
Не хочу сказать что Rails плох, Rails — замечательный фреймворк, однако вам обязательно стоит познакомиться с Sinatra, быть может он вам покажется более удобным, хотя вам и придется писать на порядок больше кода.
Думаю, стоит начать писать о Sinatra, например, рассмотреть работу какой-нибудь CMS на базе Sinatra (предложения пишите в комментарии). Но это произойдет, скорей всего, уже после моей сессии и поступления на 5 курс, т.е. во второй половине лета.
мая 28, 2011 at 20:28 (#)
По моему мнению вы не правы — да, Sinatra легкий и быстрый, и нет Rails начиная с ветки 3 далеко не избыточен.
В третих рельсах вы легко можете отключить часть функционала которая вам не нужна — не работаете с базами данных — спокойно убираете railties который отвечают за activerecord и activemodel, не нужны тяжелые контролеры — свой application controller наследуете через ActionController::Metal
Вам нравится Sinatra — не проблема, с помощью rout’инга рельсов сделайте его backend’ом для вашего приложения — но называть рельсы избыточными не стоит :), скорее это Sinatra недостаточный фреймворк — там нет даже встроенной работы с БД. Проще раз настроить рельсы на меньшую функциональность и потратить на это пол часа времени чем синатру допиливать часами, чтоб дотянуть до половины функционала (сам по себе он для блога не годится) рельс
мая 28, 2011 at 20:30 (#)
по поводу Rails + Rack (Sinatra)
мая 29, 2011 at 21:39 (#)
Ha Синатре веселенько можно крутить Джекила на Херокую
мая 30, 2011 at 09:01 (#)
«В Sinatra вы можете создавать любую структуру приложения.» Это по большей части вредно, convention over configuration — полезный принцип. По первому комменту — интересно было бы почитать статью по такому тюнингу :-)
мая 30, 2011 at 21:48 (#)
попросите автора блога :) думаю всем будет интересно , сам тюнил для проекта, реально очень многое можно выкинуть парой строчек
вся магия в application.rb в частности в строчке
require «rails/all»
собственно говоря это и загружает всё всё всё
далее подгружаем ядро rails и потом для каждого каждого фрэймворка
[code] %w(
action_controller
).each do |framework|
begin
require "#{framework}/railtie"
rescue LoadError
end
end [/code]
в примере грузится по минимуму экшн контроллер ну и т.д. :)
июня 1, 2011 at 14:12 (#)
ip82, CoC очень полезный принцип, однако MVC — это лишь один вариант из многих вариантов организации кода. Возможно, в некоторых случаях гораздо выгодно будет использовать какую-нибудь собственную структуру организации кода.
Самому интересны эти все Rails Metal, но пока нет времени со всем этим разобраться. Но как только разберусь, так сразу чего-нить интересного настрочу в бложек.
июня 1, 2011 at 23:26 (#)
Валентин спасибо, звучит интересно.
Admin да, возможно :-) Ждем новых статей!)