Александр Кириллов. Веб разработка: Что такое Ruby On Rails....
Transcript of Александр Кириллов. Веб разработка: Что такое Ruby On Rails....
![Page 1: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/1.jpg)
ЧТО ТАКОЕ RUBY ON RAILSВЕБ-РАЗРАБОТКА ДЛЯ НАЧИНАЮЩИХ
![Page 2: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/2.jpg)
О ФРЕЙМВОРКЕ
• Еще один фреймворк• Написан полностью на Ruby• … by David Heinemeier Hansson• … как ядро BaseCamp• 3 146 контрибьюторов на 2016
![Page 3: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/3.jpg)
О ФРЕЙМВОРКЕ
• Conventions over configurations• DRY (Don`t repeat yourself)• Поддерживает почти все
современные базы данных• Удобство и простота в разработке
веб-приложений
![Page 4: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/4.jpg)
MVC PATTERNВ RAILS
![Page 5: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/5.jpg)
МОДЕЛЬ
• ActiveRecord• SQL/NOSQL• Соглашения - везде!• Встроенная валидация• Миграции
![Page 6: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/6.jpg)
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 endend
![Page 7: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/7.jpg)
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
![Page 8: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/8.jpg)
КОНТРОЛЛЕР
• И тут соглашения!• Методы и экшены• Работа с параметрами запроса• Сессии• Фильтры• Безопасность
![Page 9: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/9.jpg)
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
![Page 10: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/10.jpg)
CONTROLLER
class PublicationsController < ApplicationController::Base def index @publications = Publications.all end
def show @publication = Publication.find(params[:id]) endend
![Page 11: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/11.jpg)
ПРЕДСТАВЛЕНИЯ
• Шаблоны (ERB, HAML, Slim)• Макеты (layouts)• Partials• Helpers• Ajax• Переводы и локализация (I18n)
![Page 12: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/12.jpg)
ПРЕДСТАВЛЕНИЯ: HAML
![Page 13: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/13.jpg)
ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ• отправка почты• загрузка изображений• сборка ассетов• периодические задачи
(sidekiq, delayed_jobs)
![Page 14: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/14.jpg)
ТЕСТИРОВАНИЕ• Minitests• Rspec• Capybara• Cucumber
![Page 15: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/15.jpg)
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 endend
![Page 16: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/16.jpg)
DEPLOY• Capistrano• Mina• Docker
![Page 19: Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016](https://reader036.fdocuments.net/reader036/viewer/2022062523/5870803c1a28ab57368b62f9/html5/thumbnails/19.jpg)
ВОПРОСЫ?Дополнительные ресурсы:http://guides.rubyonrails.org/http://rusrails.ru/
Блоги:https://robots.thoughtbot.com/webhttp://rubyflow.ru/https://www.railstutorial.org/book
Мои контакты:Email: [email protected]: @kirill0vЕще мои слайды про Ruby/Rails:http://www.slideshare.net/ssusercdd0ed