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