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 курс, т.е. во второй половине лета.

Tags:

Responses

  1. Валентин says:

    мая 28, 2011 at 20:28 (#)

    По моему мнению вы не правы — да, Sinatra легкий и быстрый, и нет Rails начиная с ветки 3 далеко не избыточен.

    В третих рельсах вы легко можете отключить часть функционала которая вам не нужна — не работаете с базами данных — спокойно убираете railties который отвечают за activerecord и activemodel, не нужны тяжелые контролеры — свой application controller наследуете через ActionController::Metal

    Вам нравится Sinatra — не проблема, с помощью rout’инга рельсов сделайте его backend’ом для вашего приложения — но называть рельсы избыточными не стоит :), скорее это Sinatra недостаточный фреймворк — там нет даже встроенной работы с БД. Проще раз настроить рельсы на меньшую функциональность и потратить на это пол часа времени чем синатру допиливать часами, чтоб дотянуть до половины функционала (сам по себе он для блога не годится) рельс

  2. Валентин says:

    мая 28, 2011 at 20:30 (#)

    по поводу Rails + Rack (Sinatra)

  3. argent-smith says:

    мая 29, 2011 at 21:39 (#)

    Ha Синатре веселенько можно крутить Джекила на Херокую

  4. ip82 says:

    мая 30, 2011 at 09:01 (#)

    «В Sinatra вы можете создавать любую структуру приложения.» Это по большей части вредно, convention over configuration — полезный принцип. По первому комменту — интересно было бы почитать статью по такому тюнингу :-)

  5. Валентин says:

    мая 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]
    в примере грузится по минимуму экшн контроллер ну и т.д. :)

  6. admin says:

    июня 1, 2011 at 14:12 (#)

    ip82, CoC очень полезный принцип, однако MVC — это лишь один вариант из многих вариантов организации кода. Возможно, в некоторых случаях гораздо выгодно будет использовать какую-нибудь собственную структуру организации кода.

    Самому интересны эти все Rails Metal, но пока нет времени со всем этим разобраться. Но как только разберусь, так сразу чего-нить интересного настрочу в бложек.

  7. ip82 says:

    июня 1, 2011 at 23:26 (#)

    Валентин спасибо, звучит интересно.
    Admin да, возможно :-) Ждем новых статей!)

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.