ruby on rails at hackday in saint petersburg
DESCRIPTION
Презентация для мастер-класса по Ruby on Rails на HackDay в Санкт-Петербурге 5 сентября 2009 года.TRANSCRIPT
Что такое Ruby on Rails?
• Ruby
• Мощнейший фреймворк
2
Ruby
На язык очень сильно повлияли:
• Perl
• Smalltalk
• Lisp
Разработан в 1993 году.
3
Ruby
“Ruby is designed to make programmers happy”
Yukihiro Matsumoto aka Matz
4
Ruby
• Важно, чтобы удобно было человеку, а не машине, тогда программирование по-настоящему продуктивно.
5
В Ruby всё – это объекты
6
If без всяких хитростей
7
If без всяких хитростей
8
Case
9
Регулярные выражения
10
Блоки
11
Как принимать в функции блок?
12
Посмотрим внимательно на динамическое типизирование
13
Duck typing
• Если что-то ходит как утка, крякает как утка, выглядит как утка, то это утка
• Это называется “Duck typing” (“утиным типизированием”)
14
Посмотрим ещё внимательнее
15
Посмотрим ещё внимательнее
16
У объекта класса Dog вызовется method_missing, который сгенерирует исключение.
method_missing
17
Это можно, например, использовать так…
18
Ruby
• Очень активное сообщество
• Постоянно совершенствуется
19
Rails. Кто, например, использует?
20
Rails. Основные принципы
Convention over Configuration
21
Rails. Основные принципы
Don’t Repeat Yourself
22
Model-View-Controller
23
Rails. Основные принципы
Active Record
Поле Тип
id int(11)
title varchar(255)
due_date date
24
Таблица tasks
Создаём модель
25
Database Migration
26
db/migrate
27
Active Record
28
Active Record
29
Action Controller
• http://www.../tasks/index
• Здесь:– tasks – это TaskController
– index – это метод класса
TaskController
30
Для этого создаём ресурс
31
Как это выглядит
32
Action View
33
Action View
34
Демонстрация
35
Они сделают за Вас многое –плагины и gems
36
Аутентификация и авторизация
• restful_autentification
• authlogic
• authlogic_openid
• restful_acl
• …
37
Загрузка файлов и изображений
• papaperclip
• attachments_fu
• file_column
• …
38
И многое, многое другое
• will_paginate
• recaptcha
• act_as_commentable
• act_as_taggable / act_as_taggable_on_steroids
• act_as_rateable
• act_as_state_machine
• …
39
Популярные IDE
• Aptana RadRails (Eclispse)
• IntelliJ IDEA / RubyMine
• Microsoft Visual Studio (Ruby in Steel)
• NetBeans
• TextMate, Vim и другие мощные текстовые редакторы
40
Что же нам даёт Rails в двух словах?
41
Rails делает за Вас много рутинных задач, сохраняя Ваше время для
творчества.
42
Что посмотреть?
• rubyonrails.com
• railscasts.com
• slideshare.net
• Agile Web Development with Rails.3rd Edition
43