SlideShare a Scribd company logo
1 of 19
ЧТО ТАКОЕ RUBY ON RAILS
ВЕБ-РАЗРАБОТКА ДЛЯ НАЧИНАЮЩИХ
О ФРЕЙМВОРКЕ
• Еще один фреймворк
• Написан полностью на Ruby
• … by David Heinemeier Hansson
• … как ядро BaseCamp
• 3 146 контрибьюторов на 2016
О ФРЕЙМВОРКЕ
• Conventions over configurations
• DRY (Don`t repeat yourself)
• Поддерживает почти все современные
базы данных
• Удобство и простота в разработке веб-
приложений
MVC PATTERN
В RAILS
МОДЕЛЬ
• ActiveRecord
• SQL/NOSQL
• Соглашения - везде!
• Встроенная валидация
• Миграции
ACTIVE RECORD: MIGRATION
class CreatePublications < ActiveRecord::Migration[5.0]
def change
create_table :publications do |t|
t.string :title
t.text :description
t.references :publication
t.boolean :single_issue
t.timestamps
end
add_index :publications, :publication_type_id
end
end
ACTIVE RECORD: MODEL
class Publication < ActiveRecord::Base
validates :title, presence: true
validates :description, presence: true
#...
end
# How to use:
publication = Publication.new({
title: "Post1",
description: "This is my description"
})
publication.save # => true/false
КОНТРОЛЛЕР
• И тут соглашения!
• Методы и экшены
• Работа с параметрами запроса
• Сессии
• Фильтры
• Безопасность
CONTROLLER: ROUTES
Application.routes.draw do
resources :books
resources :blogs do
resources :publications
end
namespace :api do
resources :users
end
get "/login", to: "sessions#new"
end
CONTROLLER
class PublicationsController < ApplicationController::Base
def index
@publications = Publications.all
end
def show
@publication = Publication.find(params[:id])
end
end
ПРЕДСТАВЛЕНИЯ
• Шаблоны (ERB, HAML, Slim)
• Макеты (layouts)
• Partials
• Helpers
• Ajax
• Переводы и локализация (I18n)
ПРЕДСТАВЛЕНИЯ: HAML
ДОПОЛНИТЕЛЬНЫЕ
ЗАДАЧИ
• отправка почты
• загрузка изображений
• сборка ассетов
• периодические задачи
(sidekiq, delayed_jobs)
ТЕСТИРОВАНИЕ
• Minitests
• Rspec
• Capybara
• Cucumber
TESTS: RSPEC
RSpec.describe TeamsController do
describe "GET index" do
it "assigns @teams" do
team = Team.create
get :index
expect(assigns(:teams)).to eq([team])
end
it "renders the index template" do
get :index
expect(response).to render_template("index")
end
end
end
DEPLOY
• Capistrano
• Mina
• Docker
УЖЕ СКОРО
http://railsclub.ru
CAREER.EVRONE.COM
Join our team
ВОПРОСЫ?
Дополнительные ресурсы:
http://guides.rubyonrails.org/
http://rusrails.ru/
Блоги:
https://robots.thoughtbot.com/web
http://rubyflow.ru/
https://www.railstutorial.org/book
Мои контакты:
Email: kirillov@evrone.ru
Twitter: @kirill0v
Еще мои слайды про Ruby/Rails:
http://www.slideshare.net/ssusercdd0ed

More Related Content

What's hot

Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе спо
Ekaterina Morozova
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
tfmailru
 

What's hot (20)

webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Sql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migrationSql Server: Database Mirroring -> Availability group migration
Sql Server: Database Mirroring -> Availability group migration
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
10 HappyDev-lite-2015 autumn. Данил Валов. Web на просторах Desktop'a
10 HappyDev-lite-2015 autumn. Данил Валов. Web на просторах Desktop'a10 HappyDev-lite-2015 autumn. Данил Валов. Web на просторах Desktop'a
10 HappyDev-lite-2015 autumn. Данил Валов. Web на просторах Desktop'a
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
 
Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложения
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
633942
633942633942
633942
 
Александр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWSАлександр Усунов (TagesJump) - Magento в AWS
Александр Усунов (TagesJump) - Magento в AWS
 
Abf
AbfAbf
Abf
 
Drupal and NodeJS.
Drupal and NodeJS.Drupal and NodeJS.
Drupal and NodeJS.
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
стек сетевых сервисов на базе спо
стек сетевых сервисов на базе спостек сетевых сервисов на базе спо
стек сетевых сервисов на базе спо
 
Sergey Cherebedov. Node.js+Drupal
Sergey Cherebedov. Node.js+DrupalSergey Cherebedov. Node.js+Drupal
Sergey Cherebedov. Node.js+Drupal
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
 

Viewers also liked

Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
РИФ-Воронеж
 
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
РИФ-Воронеж
 
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
РИФ-Воронеж
 

Viewers also liked (20)

Александра Литманович. Интернет-маркетинг: инструкция по применению. РИФ-Воро...
Александра Литманович. Интернет-маркетинг: инструкция по применению. РИФ-Воро...Александра Литманович. Интернет-маркетинг: инструкция по применению. РИФ-Воро...
Александра Литманович. Интернет-маркетинг: инструкция по применению. РИФ-Воро...
 
Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016
Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016
Денис Евграфов. Доставка, тестирование кода и его стиля. РИФ-Воронеж 2016
 
Сергей Подшивалин. Дизайн мобильных приложений. РИФ-Воронеж 2016
Сергей Подшивалин. Дизайн мобильных приложений. РИФ-Воронеж 2016Сергей Подшивалин. Дизайн мобильных приложений. РИФ-Воронеж 2016
Сергей Подшивалин. Дизайн мобильных приложений. РИФ-Воронеж 2016
 
Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
Сергей Мосякин. Коллективное сознательное Тренды в дизайне как результат соци...
 
Виктория Логачева. Организация работы с удалённой командой. РИФ-Воронеж 2016
Виктория Логачева. Организация работы с удалённой командой. РИФ-Воронеж 2016Виктория Логачева. Организация работы с удалённой командой. РИФ-Воронеж 2016
Виктория Логачева. Организация работы с удалённой командой. РИФ-Воронеж 2016
 
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
Никита Михеенков. Контент и продажи. РИФ-Воронеж 2016
 
Владимир Страхов. Ruby On Rails. Перед тем как начать. РИФ-Воронеж 2016
Владимир Страхов. Ruby On Rails. Перед тем как начать. РИФ-Воронеж 2016Владимир Страхов. Ruby On Rails. Перед тем как начать. РИФ-Воронеж 2016
Владимир Страхов. Ruby On Rails. Перед тем как начать. РИФ-Воронеж 2016
 
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
Martins Legzdins. Завтра было вчера. РИФ-Воронеж 2016
 
Денис Кортунов. Беспощадный редизайн приложения. РИФ-Воронеж 2016
Денис Кортунов. Беспощадный редизайн приложения. РИФ-Воронеж 2016Денис Кортунов. Беспощадный редизайн приложения. РИФ-Воронеж 2016
Денис Кортунов. Беспощадный редизайн приложения. РИФ-Воронеж 2016
 
Алексей Безымянный. Опыт применения сервисов дистанционных консультаций в гос...
Алексей Безымянный. Опыт применения сервисов дистанционных консультаций в гос...Алексей Безымянный. Опыт применения сервисов дистанционных консультаций в гос...
Алексей Безымянный. Опыт применения сервисов дистанционных консультаций в гос...
 
Андрей Парфенов. Фотоконтент на сайте. РИФ-Воронеж 2016
Андрей Парфенов. Фотоконтент на сайте. РИФ-Воронеж 2016Андрей Парфенов. Фотоконтент на сайте. РИФ-Воронеж 2016
Андрей Парфенов. Фотоконтент на сайте. РИФ-Воронеж 2016
 
Кирилл Готовцев. Чем настоящая реклама отличается от всей этой фигни. Выступл...
Кирилл Готовцев. Чем настоящая реклама отличается от всей этой фигни. Выступл...Кирилл Готовцев. Чем настоящая реклама отличается от всей этой фигни. Выступл...
Кирилл Готовцев. Чем настоящая реклама отличается от всей этой фигни. Выступл...
 
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
Денис Неклюдов. Держи свое приложение на волне новинок. РИФ-Воронеж 2016
 
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
Евгений Сатуров. Firebase в Android-разработке: основные возможности. РИФ-Вор...
 
Ярослав Шуваев. UX-дизайнер: Основы профессии и тренды. РИФ-Воронеж 2016
Ярослав Шуваев. UX-дизайнер: Основы профессии и тренды. РИФ-Воронеж 2016Ярослав Шуваев. UX-дизайнер: Основы профессии и тренды. РИФ-Воронеж 2016
Ярослав Шуваев. UX-дизайнер: Основы профессии и тренды. РИФ-Воронеж 2016
 
Никита Калиновский. Безопасность интернета вещей. РИФ-Воронеж 2016
Никита Калиновский. Безопасность интернета вещей. РИФ-Воронеж 2016Никита Калиновский. Безопасность интернета вещей. РИФ-Воронеж 2016
Никита Калиновский. Безопасность интернета вещей. РИФ-Воронеж 2016
 
Оценка дизайнеру
Оценка дизайнеруОценка дизайнеру
Оценка дизайнеру
 
Василий Бернштейн. Тенденции мобильных платежей – NFC & In-App Payments. РИФ-...
Василий Бернштейн. Тенденции мобильных платежей – NFC & In-App Payments. РИФ-...Василий Бернштейн. Тенденции мобильных платежей – NFC & In-App Payments. РИФ-...
Василий Бернштейн. Тенденции мобильных платежей – NFC & In-App Payments. РИФ-...
 
Звиад Кардава. Интернет вещей - модное слово или реальность? РИФ-Воронеж 2016
Звиад Кардава. Интернет вещей - модное слово или реальность? РИФ-Воронеж 2016Звиад Кардава. Интернет вещей - модное слово или реальность? РИФ-Воронеж 2016
Звиад Кардава. Интернет вещей - модное слово или реальность? РИФ-Воронеж 2016
 
Андрей Кожанов. ЧТО ЛЬЗЯ В БРЕНД-ДИЗАЙНЕ. Или где живет дизайн в проектирован...
Андрей Кожанов. ЧТО ЛЬЗЯ В БРЕНД-ДИЗАЙНЕ. Или где живет дизайн в проектирован...Андрей Кожанов. ЧТО ЛЬЗЯ В БРЕНД-ДИЗАЙНЕ. Или где живет дизайн в проектирован...
Андрей Кожанов. ЧТО ЛЬЗЯ В БРЕНД-ДИЗАЙНЕ. Или где живет дизайн в проектирован...
 

Similar to Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016

Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Fuenteovejuna
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
Denis Izmaylov
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)
Andrey Akulov
 
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Dmitry Lazarenko
 

Similar to Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016 (20)

Drupal в облаке - Владимир Юнев
Drupal в облаке - Владимир ЮневDrupal в облаке - Владимир Юнев
Drupal в облаке - Владимир Юнев
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат ГаджибалаевCloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
Cloud APIs - обзор API западных провайдеров и API Scalaxy, Нат Гаджибалаев
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureJelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Breaking logs
Breaking logsBreaking logs
Breaking logs
 
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application
 
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемыMoscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
 
Workflow одной OPS-команды
Workflow одной OPS-командыWorkflow одной OPS-команды
Workflow одной OPS-команды
 
SECON'2016. Кузнецов Вячеслав, Workflow одной Ops-команды
SECON'2016. Кузнецов Вячеслав, Workflow одной Ops-командыSECON'2016. Кузнецов Вячеслав, Workflow одной Ops-команды
SECON'2016. Кузнецов Вячеслав, Workflow одной Ops-команды
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
 
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
Высокая доступность приложений в гибридном облаке на базе Jelastic и Azure Tr...
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 

Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016