Пишем форум с нуля на ruby on rails и angularjs

Развертывание[править]

Даже на этой ранней стадии мы собираемся развернуть наше (по прежнему пустое) Rails приложение к производству. Этот шаг является необязательным, но раннее развертывание часто позволяет уловить любые проблемы на этапе разработки. Альтернатива — развертывание только после трудоемких усилий запечатанное далеко в среде разработки, часто приводит к страшной головной боли интеграции, когда наступает время обеда.

Средства развертывания Ruby кода появились в течении нескольких прошедших лет, и сейчас для этого есть несколько замечательных функций. Они включают приложения для хостов или виртуальных частных серверов Phusion Passenger (модуль для Apache и Nginx), полный комплекс услуг развертывания таких компаний, как Engine Yard и Rails Machine, и облако развертывания услуг, таких как Engine Yard Cloud и Heroku.

Мой любимый способ развертывания Rails — опция Heroku, платформа, построенная специально для развертывания Rails и других веб Ruby applications. Heroku делает развертывание Rails приложений до смешного простым, используя для получения исходного кода систему управления версиями Git. (Это еще одна причина для последующей установки Git шаги в разделе 1.3, если вы еще не сделали этого.) Оставшаяся часть этого раздела посвящена развертыванию нашего первого приложения для Heroku.

Установка Herokuправить

После регистрации на Heroku, установите Heroku gem:

$  gem install heroku

Как и с GitHub, при использовании Heroku вам необходимо создать SSH ключи, если вы до сих пор это не сделали, и затем указать Heroku ваш public key, чтобы вы смогли использовать Git для загрузки ваших приложений на их сервера:

$ heroku keys:add

Наконец, используем команду Heroku для того чтобы создать место на серверах Heroku, чтобы наше приложение ожило:

Да, и это все. Heroku команда создает новый поддомен только для нашего приложения доступный для немедленного просмотра. Там пока что ничего нет, так что давайте займемся развертыванием.

Развертывание. Шаг первый.править

Для развертывания на Heroku, первый шаг заключается в использовании Git для загрузки приложении на Heroku:

$ git push heroku master

Развертывание. Шаг второй.править

Нет никакого второго шага! Мы уже все сделали! Чтобы увидеть готовое приложение, вы можете посетить адрес который вы видели когда вы запускали heroku create. Вы также можете использовать команду Heroku, которая автоматически сделает это:

$ heroku open

После того как вы успешно запустили ваше приложение, heroku обеспечивает красивый интерфейс для администрирования и настройки приложения.

Команды Herokuправить

Есть целая куча команд Heroku, и мы едва будем использовать их все в нашем учебнике. Давайте используем одну из них чтобы переименовать приложение:

$ heroku rename youname

Змея или драгоценный камень

Основные различия между фреймворками заключаются в подходе к языку, философии и языках программирования, которые они используют. Философия Python «Есть только один очевидный способ решения задачи» противоречит гибкости, свободе и силе выбора Ruby.

Большинство новичков начинают программировать на Python. Самый первый взгляд на код Python заманивает тех, кто не знаком с языком. Его синтаксис просто идеален: нет точек с запятой, странных специальных символов или ключевых слов. Если вы еще не программировали на Python — попробуйте, вы не разочаруетесь. Код на Python будет выглядеть следующим образом:

Синтаксис Python делает его подходящим для большинства проектов. Читаемость кода также упрощает присоединение новичков в команду разработчиков.

Python также хорош для прототипирования. Вы можете реализовать новую идею, используя Python. Если идея осуществима и ваше приложение требует высокой производительности, идея может быть повторно реализована на высокопроизводительном языке программирования вроде C++.

Прим. перев

Если вы захотите начать изучение Python, советуем обратить внимание на наши обучающие материалы по этому языку

Frontend Developer

UX Feedback, Удалённо, От 60 000 до 120 000 ₽

tproger.ru

Вакансии на tproger.ru

Ruby особенный. Его можно назвать экзотическим и изящным. Не удивительно, что этот язык был изобретен японцами. В его строках есть что-то исключительное, что вызывает интерес. И хотя код не так читаем, как на Python, синтаксис по-прежнему очень прост для понимания и изучения. Код на этом уникальном языке будет выглядеть так:

В Ruby всё является объектами. Каждый тип данных относится к определенному классу со встроенными методами. То же самое относится к Python. Другой популярной особенностью Ruby являются «блоки». Используя их, вы можете изменить любой метод (даже встроенный).

Продуктивность

И Ruby on Rails, и Django имеют так называемые «волшебные», готовые решения. Однако магия RoR намного превосходит всё остальное.

Когда разработчик Rails создает контроллер, его методы могут автоматически обращаться к переменным и наследовать методы другого класса. Ни эти классы, ни переменные не определены явно. Ruby on Rails просто добавляет их автоматически. Он также автоматически устанавливает маршруты внутри MVC.

Разработчик Django, напротив, должен явно определять переменные и классы импорта. Они должны использовать регулярные выражения (что-то вроде ) для определения маршрутов и URL-адресов. Разработчики Django должны полностью понять, как все работает внутри, чтобы настроить код.

Приятно полагаться на волшебство, когда вы хотите как можно быстрее запустить веб-приложение. Для новичков-программистов это самый простой способ понять, как работают веб-фреймворки. С другой стороны, это покажет только картинку в целом. Развертывание веб-приложения на Django поможет понять, как все это работает в деталях.

Производительность

Оба фреймворка основаны на интерпретируемых скриптовых языках. Это приводит к почти одинаковой производительности. Ранние версии Ruby, такие как 1.8 или 1.9.x, были низко производительными. В те дни Twitter перешел с Ruby on Rails на Scala, заявив, что «Twitter Search теперь стал в 3 раза быстрее». Но имейте в виду, что большинство компаний вряд ли достигнут такого же объема трафика, как Twitter.

Обычно Python считается немного быстрее Ruby. Некоторые люди могут спорить и ссылаться на сравнительное сравнение времени выполнения. Тесты показывают идентичные результаты с точки зрения производительности. Однако даже эксперты Ruby признают, что язык медленный. Хорошей новостью является то, что каждая новая версия языков программирования повышает производительность.

Документация и сообщества

Документация является личным предпочтением. Оба фреймворка хорошо документированы и организованы. Команды разработчиков Django Software Foundation и Rails проделали большую работу, чтобы документации были структурированными и удобными. Они похожи на простые книги, которые приятно читать.

Благодаря сообществам на StackOverflow и GitHub мы можем открыть Google и просто найти нужный код. Идея, которая придет вам на ум завтра, уже сегодня имеет готовое решение. Существует много программ, разработанных сообществом. Плагины могут помочь справиться с большинством задач.

Однако сообщества разные. Первоначально Ruby — это язык программирования общего назначения. Хотя существуют другие Ruby-структуры, такие как Sinatra или Lotus, большая часть Ruby относится к Rails. И Rails — это среда веб-разработки.

Python, напротив, выходит далеко за рамки веб-разработки. Есть много людей, которые используют Python для создания географических информационных систем, научно-ориентированных проектов, систем автоматизации тестирования и многого другого.

Особенности фреймворков

Ruby on Rails и Django — это веб-фреймворки для реализации схемы Model-View-Controller. Этот шаблон разделяет проблемы разработки на три блока. Вот как это работает:

В двух словах, все три компонента шаблона MVC — это просто классы с методами. Представим ,что мы создали простой блог:

  • Model представляет базы данных: профили пользователей, комментарии, сообщения и т.д.
  • View переносит данные в шаблон HTML и отправляет их в Controller.
  • Controller соединяет Model и View, обрабатывает пользовательские запросы и отправляет ответы обратно в веб-браузер.

В Django имя шаблона немного отличается и может смутить сначала. Это тот же MVC, но View называется Template, а Controller называется View. Таким образом, мы получаем MTV.

Знакомство с Rails[править]

Что входит в Rails?править

Rails — это полноценный, многоуровневый фреймворк для построения веб-приложений, использующих базы данных, который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC).
Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, — для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала — база данных и веб-сервер.

Кто пользуется Rails?править

Rails используют все — от стартапов и некоммерческих организаций до крупного бизнеса. Rails — это прежде всего инфраструктура, поэтому среда великолепно подходит для любого типа веб-приложений, будь это программы для организации совместной работы, поддержки сообществ, электронного бизнеса, управления содержанием, статистики, управления… Список можете продолжить сами.

Что еще нужно?править

Rails отлично работает со многими веб-серверами и СУБД. В качестве веб-сервера рекомендуется использовать Apache или nginx с модулем Phusion Passenger. Rails также можно разворачивать используя Unicorn, Thin, Mongrel или FastCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе, однако для развертывания мы рекомендуем системы семейства *nix.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector