Синатра устраняет разрыв между сложными, многоуровневыми структурами и простотой. Если у вас нет образования по разработке программного обеспечения (мне не нужно) разрабатывать для Интернета на профессиональной основе (я делаю), то Синатра предлагает все, что вам нужно.
Список причин, по которым Синатра может попробовать, может быть очень длинным, но многие причины сводятся к ряду ключевых моментов. Я бегу через них здесь.
1. Легко настроить и поддерживать
Мне нужно заняться веб-разработкой, но это не вся моя карьера. Это значит, что у меня мало времени на настройку.
PHP популярен отчасти потому, что вы можете быстро его запустить на своей локальной установке. Для большинства операционных систем существуют специальные двоичные файлы программного обеспечения, позволяющие избежать проблем при настройке.
Ну, у Руби и, следовательно, у Синатры, теперь есть такая возможность . А Ruby Version Manager (RVM) уже довольно давно существует для Unix. Для Ruby также имеется установщик Windows, поэтому больше не нужно приобретать все, что нужно для работы с Sinatra.
2. Он остается вне вашего пути — пока вам это не нужно
Я помню, как создавал свое первое приложение Sinatra. Ранее создав веб-приложения с PHP-фреймворками и пару попыток с Rails, мне понравился тот факт, что проект Sinatra начинается с одного файла.
Затем я провел следующий час, издавая звуки типа «вау», «круто» и другие отвратительные высказывания. Что вызвало это? Такие вещи, как Синатра, просто зная :
- О моем файле макета, просто потому, что я создал представления папки и файл с именем
layout.erb
. - Где мои активы, такие как изображения и таблицы стилей были. Все, что мне нужно было сделать, это создать
public
папку и добавить их туда. - Чтобы я хотел, чтобы мой контент появлялся в точке, где я добавил
<%= yield %>
в свой макет. Ага, хотя многие фреймворки делают это. Хорошо, хорошо, как насчет возможности загрузки частичного представления:<%= erb :'partials/twitter' %>
.
Я мог бы продолжить, но я уверен, что вы поняли идею.
Что происходит, когда вам нужно сделать что-то большее, чем создание статических файлов? Ну, Синатра подходит к тарелке. Например, я большой поклонник Markdown. Как вы используете это с Синатрой? Просто. Требуется гем, такой как rdiscount
, а затем в вашем Ruby-файле приложения вы просто добавляете:
get «/test_page» do | |
markdown :test_file, :layout_engine => :erb | |
end |
Предполагая, что test_file
является файлом Markdown, он будет отображаться как HTML в вашем браузере. Можно утверждать, что простота здесь достигается гибкостью драгоценного камня rdiscount . Да, но, как и многие другие функции, которые вы, возможно, захотите добавить в свое приложение, Sinatra обеспечивает прочную основу, облегчающую реализацию.
3. Вы можете быть продуктивным, не будучи экспертом
У Синатры есть отличная документация для начала. Но если вы занимались какой-либо веб-разработкой раньше, есть определенные вещи, которые работают так, как вы могли бы ожидать. Или, используя экосистему драгоценных камней Ruby, вы можете добиться успеха, читая документацию по драгоценным камням.
Возьмите загрузку файла, довольно распространенное требование для веб-приложения.
Лучшее место для размещения приложений Sinatra — на Heroku. Но Heroku не использует файловую систему, поэтому вам лучше загрузить ее в другое место, например, в свою учетную запись Amazon S3.
Для этого есть рубиновый камень, называемый aws-s3 . Это делает загрузку из вашего приложения Sinatra простой.
Опять же, можно утверждать, что это жемчужина, которая предоставляет функцию, но это способ, которым она может быть легко интегрирована с Sinatra, что мне действительно нравится. И это не требует большого количества кода — еще одна особенность Sinatra.
То, как я общаюсь с Синатрой, — это дождаться проблемы, а затем попробовать ее решить. Например, я писал эту статью для Rubysource и не знал, как пройти по каталогу, потому что я все еще изучаю Ruby. Поскольку Синатра знает Руби, все, что мне нужно было сделать, это научиться делать это с Руби, и это дало мне ответ на Синатру.
Может показаться, что я утверждаю очевидное; Синатра написана на Ruby в конце концов. Но попробуйте использовать каждую из популярных платформ PHP. Все они реализуют общие функции веб-приложений по-разному. Это как учить PHP заново, когда вы переключаете фреймворки.
Это может показаться не так много, но, по правде говоря, это главная особенность Синатры. Вы можете буквально «учиться на ходу».
4. Вы получаете результаты — быстро
Синатра не делает многословно. Или, другими словами, если вы пишете много кода для приложения Sinatra, либо это очень большое приложение, либо вы делаете это неправильно.
Рабочий процесс, который вы можете использовать с Sinatra, упрощен. Если у вас есть макет, это буквально случай создания методов …
Подождите минуту, хотя. В рубиновом файле Синатры (я всегда называю мой main.rb) действия, которые мы добавляем, на самом деле являются вызовами методов. Это потому, что базовый класс Синатры имеет открытые методы, которые соответствуют HTTP-глаголам, таким как GET, POST, PUT.
Итак, известный пример приложения:
get ‘/hi’ do | |
«Hello World!» | |
end |
дает вам сильный индикатор того, как быстро вы можете заставить что-то работать. Но есть еще лучший пример. Вы можете использовать Rack::Test
с Синатрой. Это означает, что модульное тестирование легко осуществить . Есть причина, по которой я много об этом говорю. Потратив довольно много времени на разработку с PHP, я могу сказать вам по горькому личному опыту, что попытка настроить модульное тестирование — это боль.
Вот почему многие разработчики PHP склонны избегать этого. Это просто не проблема с Синатрой. Вы создаете основной файл приложения, а затем другой для тестирования. Все, что вам нужно, это установленный в rack-test
Документация Sinatra имеет отличный пример того, как это реализовать. Достаточно сказать, что, как и все с Sinatra, его легко и быстро настроить. Это позволяет вам думать о том, как вы хотите протестировать свое приложение.
В заключение…
Я надеюсь, что дал вам пищу для размышлений. Я долго уклонялся от Синатры, Рейлса и Руби. Самоучка в веб-разработке заставила меня подумать, что я должен оставить это для тех, кто имеет реальный опыт.
Это оскорбление создателей Синатры. Теперь я это понимаю. Его дизайн делает создание надежных веб-приложений очень простым. И, конечно же, он поддерживается мощью Rack . Я уверен, что Синатра растет вместе с вами, предоставляя ободряющие маленькие толчки, чтобы попробовать что-то новое.
Не забывайте, что SitePoint выпускает Jump Start Sinatra как часть серии книг Jump Start в начале 2013 года. Обязательно подпишитесь, чтобы получать уведомления о его выпуске!