19
ЧТО ТАКОЕ RUBY ON RAILS ВЕБ-РАЗРАБОТКА ДЛЯ НАЧИНАЮЩИХ

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

  • Upload
    -

  • View
    105

  • Download
    0

Embed Size (px)

Citation preview

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

ЧТО ТАКОЕ RUBY ON RAILSВЕБ-РАЗРАБОТКА ДЛЯ НАЧИНАЮЩИХ

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

О ФРЕЙМВОРКЕ

• Еще один фреймворк• Написан полностью на Ruby• … by David Heinemeier Hansson• … как ядро BaseCamp• 3 146 контрибьюторов на 2016

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

О ФРЕЙМВОРКЕ

• Conventions over configurations• DRY (Don`t repeat yourself)• Поддерживает почти все

современные базы данных• Удобство и простота в разработке

веб-приложений

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

MVC PATTERNВ RAILS

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

МОДЕЛЬ

• ActiveRecord• SQL/NOSQL• Соглашения - везде!• Встроенная валидация• Миграции

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

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

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

КОНТРОЛЛЕР

• И тут соглашения!• Методы и экшены• Работа с параметрами запроса• Сессии• Фильтры• Безопасность

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

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

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

ПРЕДСТАВЛЕНИЯ

• Шаблоны (ERB, HAML, Slim)• Макеты (layouts)• Partials• Helpers• Ajax• Переводы и локализация (I18n)

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

ПРЕДСТАВЛЕНИЯ: HAML

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

ДОПОЛНИТЕЛЬНЫЕ ЗАДАЧИ• отправка почты• загрузка изображений• сборка ассетов• периодические задачи

(sidekiq, delayed_jobs)

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

ТЕСТИРОВАНИЕ• Minitests• Rspec• Capybara• Cucumber

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

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

DEPLOY• Capistrano• Mina• Docker

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

УЖЕ СКОРО

http://railsclub.ru

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

CAREER.EVRONE.COM

Join our team

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

ВОПРОСЫ?Дополнительные ресурсы: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