ruby on rails at hackday in saint petersburg

44
Ruby on Rails Александр Красс [email protected]

Upload: alexander-krass

Post on 21-Dec-2014

568 views

Category:

Technology


0 download

DESCRIPTION

Презентация для мастер-класса по Ruby on Rails на HackDay в Санкт-Петербурге 5 сентября 2009 года.

TRANSCRIPT

Page 1: Ruby on Rails at HackDay in Saint Petersburg

Ruby on Rails

Александр Красс

[email protected]

Page 2: Ruby on Rails at HackDay in Saint Petersburg

Что такое Ruby on Rails?

• Ruby

• Мощнейший фреймворк

2

Page 3: Ruby on Rails at HackDay in Saint Petersburg

Ruby

На язык очень сильно повлияли:

• Perl

• Smalltalk

• Lisp

Разработан в 1993 году.

3

Page 4: Ruby on Rails at HackDay in Saint Petersburg

Ruby

“Ruby is designed to make programmers happy”

Yukihiro Matsumoto aka Matz

4

Page 5: Ruby on Rails at HackDay in Saint Petersburg

Ruby

• Важно, чтобы удобно было человеку, а не машине, тогда программирование по-настоящему продуктивно.

5

Page 6: Ruby on Rails at HackDay in Saint Petersburg

В Ruby всё – это объекты

6

Page 7: Ruby on Rails at HackDay in Saint Petersburg

If без всяких хитростей

7

Page 8: Ruby on Rails at HackDay in Saint Petersburg

If без всяких хитростей

8

Page 9: Ruby on Rails at HackDay in Saint Petersburg

Case

9

Page 10: Ruby on Rails at HackDay in Saint Petersburg

Регулярные выражения

10

Page 11: Ruby on Rails at HackDay in Saint Petersburg

Блоки

11

Page 12: Ruby on Rails at HackDay in Saint Petersburg

Как принимать в функции блок?

12

Page 13: Ruby on Rails at HackDay in Saint Petersburg

Посмотрим внимательно на динамическое типизирование

13

Page 14: Ruby on Rails at HackDay in Saint Petersburg

Duck typing

• Если что-то ходит как утка, крякает как утка, выглядит как утка, то это утка

• Это называется “Duck typing” (“утиным типизированием”)

14

Page 15: Ruby on Rails at HackDay in Saint Petersburg

Посмотрим ещё внимательнее

15

Page 16: Ruby on Rails at HackDay in Saint Petersburg

Посмотрим ещё внимательнее

16

У объекта класса Dog вызовется method_missing, который сгенерирует исключение.

Page 17: Ruby on Rails at HackDay in Saint Petersburg

method_missing

17

Page 18: Ruby on Rails at HackDay in Saint Petersburg

Это можно, например, использовать так…

18

Page 19: Ruby on Rails at HackDay in Saint Petersburg

Ruby

• Очень активное сообщество

• Постоянно совершенствуется

19

Page 20: Ruby on Rails at HackDay in Saint Petersburg

Rails. Кто, например, использует?

20

Page 21: Ruby on Rails at HackDay in Saint Petersburg

Rails. Основные принципы

Convention over Configuration

21

Page 22: Ruby on Rails at HackDay in Saint Petersburg

Rails. Основные принципы

Don’t Repeat Yourself

22

Page 23: Ruby on Rails at HackDay in Saint Petersburg

Model-View-Controller

23

Rails. Основные принципы

Page 24: Ruby on Rails at HackDay in Saint Petersburg

Active Record

Поле Тип

id int(11)

title varchar(255)

due_date date

24

Таблица tasks

Page 25: Ruby on Rails at HackDay in Saint Petersburg

Создаём модель

25

Page 26: Ruby on Rails at HackDay in Saint Petersburg

Database Migration

26

Page 27: Ruby on Rails at HackDay in Saint Petersburg

db/migrate

27

Page 28: Ruby on Rails at HackDay in Saint Petersburg

Active Record

28

Page 29: Ruby on Rails at HackDay in Saint Petersburg

Active Record

29

Page 30: Ruby on Rails at HackDay in Saint Petersburg

Action Controller

• http://www.../tasks/index

• Здесь:– tasks – это TaskController

– index – это метод класса

TaskController

30

Page 31: Ruby on Rails at HackDay in Saint Petersburg

Для этого создаём ресурс

31

Page 32: Ruby on Rails at HackDay in Saint Petersburg

Как это выглядит

32

Page 33: Ruby on Rails at HackDay in Saint Petersburg

Action View

33

Page 34: Ruby on Rails at HackDay in Saint Petersburg

Action View

34

Page 35: Ruby on Rails at HackDay in Saint Petersburg

Демонстрация

35

Page 36: Ruby on Rails at HackDay in Saint Petersburg

Они сделают за Вас многое –плагины и gems

36

Page 37: Ruby on Rails at HackDay in Saint Petersburg

Аутентификация и авторизация

• restful_autentification

• authlogic

• authlogic_openid

• restful_acl

• …

37

Page 38: Ruby on Rails at HackDay in Saint Petersburg

Загрузка файлов и изображений

• papaperclip

• attachments_fu

• file_column

• …

38

Page 39: Ruby on Rails at HackDay in Saint Petersburg

И многое, многое другое

• 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

Популярные 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

Что же нам даёт Rails в двух словах?

41

Page 42: Ruby on Rails at HackDay in Saint Petersburg

Rails делает за Вас много рутинных задач, сохраняя Ваше время для

творчества.

42

Page 43: Ruby on Rails at HackDay in Saint Petersburg

Что посмотреть?

• rubyonrails.com

• railscasts.com

• slideshare.net

• Agile Web Development with Rails.3rd Edition

43

Page 44: Ruby on Rails at HackDay in Saint Petersburg

Ruby on Rails

Александр Красс

[email protected]