Пак ли този rails?

95
Пак ли този ? Стефан Кънев http://skanev.com / @skanev OpenFest 07 ноември 2009 Tuesday, April 27, 2010

Upload: stefan-kanev

Post on 09-Jul-2015

755 views

Category:

Technology


1 download

DESCRIPTION

Презентация от OpenFest 2009

TRANSCRIPT

Page 1: Пак ли този Rails?

Пак ли този ?

Стефан Къневhttp://skanev.com/@skanev

OpenFest07 ноември 2009

Tuesday, April 27, 2010

Page 2: Пак ли този Rails?

Tuesday, April 27, 2010

Page 3: Пак ли този Rails?

Tuesday, April 27, 2010

Page 4: Пак ли този Rails?

Tuesday, April 27, 2010

Page 5: Пак ли този Rails?

Аз ползвамWindows 7

Tuesday, April 27, 2010

Page 6: Пак ли този Rails?

Пак ли този ?

Стефан Къневhttp://skanev.com/@skanev

OpenFest07 ноември 2009

Tuesday, April 27, 2010

Page 7: Пак ли този Rails?

Пак ли този ?

Стефан Къневhttp://skanev.com/@skanev

OpenFest07 ноември 2009

Защо "пак"?

Tuesday, April 27, 2010

Page 8: Пак ли този Rails?

Tuesday, April 27, 2010

Page 9: Пак ли този Rails?

2 причини

Tuesday, April 27, 2010

Page 10: Пак ли този Rails?

Причина №1

Tuesday, April 27, 2010

Page 11: Пак ли този Rails?

Java PHP Python Haskell Rails Lolcats

Продуктивност "Фън"

Tuesday, April 27, 2010

Page 12: Пак ли този Rails?

• CakePHP

• CodeIgniter

• "чисто" PHP

PHP• Catalyst

• "чист" Perl

Perl

• Django

• TurboGears

Python• Servlet & JSP

• Struts (+ Hibernate)

• Wicket (+ Spring)

• JSF

Java

Tuesday, April 27, 2010

Page 13: Пак ли този Rails?

Причина №2

...по-късноTuesday, April 27, 2010

Page 14: Пак ли този Rails?

За какво ще говоря?

Tuesday, April 27, 2010

Page 15: Пак ли този Rails?

Introduction

Tuesday, April 27, 2010

Page 16: Пак ли този Rails?

1. За Rails накратко

2. Няколко интересни неща

3. Обществото около Rails

Планът

Tuesday, April 27, 2010

Page 17: Пак ли този Rails?

1. За Rails накратко

2. Няколко интересни неща

3. Обществото около Rails

Планът

Tuesday, April 27, 2010

Page 18: Пак ли този Rails?

Ruby on Rails

Език запрограмиране

Web framework

Tuesday, April 27, 2010

Page 19: Пак ли този Rails?

duck typing

динамичен

обектно-ориентиран

интерпретира сеgeneral purpose

ала Perl и Python

Tuesday, April 27, 2010

Page 20: Пак ли този Rails?

ModelViewController

Tuesday, April 27, 2010

Page 21: Пак ли този Rails?

Rails е...

...като:• CakePHP• CodeIgniter• Struts• Catalyst• TurboGears

...различен от:• Wicket• Google Web Tookit• Java Server Faces

Django

Tuesday, April 27, 2010

Page 22: Пак ли този Rails?

agile

Tuesday, April 27, 2010

Page 23: Пак ли този Rails?

1. За Rails накратко

2. Няколко интересни неща

3. Обществото около Rails

Планът

Tuesday, April 27, 2010

Page 24: Пак ли този Rails?

2. Малки интересни неща

• Конзола

Tuesday, April 27, 2010

Page 25: Пак ли този Rails?

>> a, b = 2, 8=> [2, 8]>> a ** b=> 256>> ["Interactive", "shell"].join(" ")=> "Interactive shell"

Tuesday, April 27, 2010

Page 26: Пак ли този Rails?

>> u = User.find_by_email '[email protected]'>> u.password = 'larodi'>> u.password_confirmation = 'larodi'>> u.save

Tuesday, April 27, 2010

Page 27: Пак ли този Rails?

начин да научите rails

Tuesday, April 27, 2010

Page 28: Пак ли този Rails?

server debugging

Tuesday, April 27, 2010

Page 29: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

Tuesday, April 27, 2010

Page 30: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

Tuesday, April 27, 2010

Page 31: Пак ли този Rails?

<h1>Cheese</h1><ul id="cheese"> <li>Red Leicester</li> <li class="selected">Lancashire</li> <li>Danish Blue</li> <li>Gouda</li></ul>

HTML

Tuesday, April 27, 2010

Page 32: Пак ли този Rails?

<h1>Cheese</h1><ul id="cheese"> <li>Red Leicester</li> <li class="selected">Lancashire</li> <li>Danish Blue</li> <li>Gouda</li></ul>

%h1 Cheese%ul#cheese %li Red Leicester %li.selected Lancashire %li Danish Blue %li Gouda

HTML

HAML

Tuesday, April 27, 2010

Page 33: Пак ли този Rails?

OMG! Супер!

Tuesday, April 27, 2010

Page 34: Пак ли този Rails?

OMG! Ужас!

Tuesday, April 27, 2010

Page 35: Пак ли този Rails?

<h1>Cheese</h1><ul id="cheese"> <li>Red Leicester</li> <li class="selected">Lancashire</li> <li>Danish Blue</li> <li>Gouda</li></ul>

%h1 Cheese%ul#cheese %li Red Leicester %li.selected Lancashire %li Danish Blue %li Gouda

HTML

HAML

Tuesday, April 27, 2010

Page 36: Пак ли този Rails?

<h1>Cheese</h1><% unless @cheese.empty? %> <ul id="cheese"> <% @cheese.each do |name| %> <li><%= name %></li> <% end %> </ul><% else %> <p>Sorry sir, we don't have any cheese.</p><% end %>

ERB

Tuesday, April 27, 2010

Page 37: Пак ли този Rails?

%h1 Cheese- unless @cheese.empty? %ul#cheese - @cheese.each do |name| %li= name- else %p Sorry sir, we don't have any cheese

<h1>Cheese</h1><% unless @cheese.empty? %> <ul id="cheese"> <% @cheese.each do |name| %> <li><%= name %></li> <% end %> </ul><% else %> <p>Sorry sir, we don't have any cheese.</p><% end %>

ERB

HAML

Tuesday, April 27, 2010

Page 38: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

• SASS

Tuesday, April 27, 2010

Page 39: Пак ли този Rails?

h1 { height: 118px; margin-top: 1em;}

.tagline { font-size: 26px; text-align: right;}

h1 height: 118px margin-top: 1em

.tagline font-size: 26px text-align: right

SASS CSS

Прост пример

Tuesday, April 27, 2010

Page 40: Пак ли този Rails?

SASS CSS

Влагане

table.hl margin: 2em 0 td.ln text-align: right

li font: family: serif weight: bold size: 1.2em

table.hl { margin: 2em 0;}table.hl td.ln { text-align: right;}

li { font-family: serif; font-weight: bold; font-size: 1.2em;}

Tuesday, April 27, 2010

Page 41: Пак ли този Rails?

SASS CSS

Константи

!blue = #3bbfce!margin = 16px

.content_navigation border-color = !blue color = !blue - #111

.border padding = !margin / 2 margin = !margin / 2 border-color = !blue

.content_navigation { border-color: #3bbfce; color: #2aaebd;}

.border { padding: 8px; margin: 8px; border-color: #3bbfce;}

Tuesday, April 27, 2010

Page 42: Пак ли този Rails?

SASS CSS

Mix-ins

=rounded-corners(!size) -moz-border-radius = !size -webkit-border-radius = !size border-radius = !size

#data +rounded-corners(5px)

#data { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px;}

Tuesday, April 27, 2010

Page 43: Пак ли този Rails?

http://lesscss.org/

Tuesday, April 27, 2010

Page 44: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

• SASS

•Миграции

Tuesday, April 27, 2010

Page 45: Пак ли този Rails?

schema.sql

Tuesday, April 27, 2010

Page 46: Пак ли този Rails?

@Entityclass User { @Basic String name; @Basic int age; @ManyToOne City city;}

Автоматични промени

Tuesday, April 27, 2010

Page 47: Пак ли този Rails?

id title category_name

1 Dune Fiction

2 War & Peace Drama

3 Lord of the Rings Fiction

id title category_id

1 Dune 1

2 War & Peace 2

3 Lord of the Rings 1

id name

1 Fiction

2 Drama

Tuesday, April 27, 2010

Page 48: Пак ли този Rails?

class NormalizeCategories < ActiveRecord::Migration def self.up create_table :categories do |t| t.string :name end add_column :books, :category_id, :integer Book.all.each do |book| category = Category.find_or_create_by_name book.category_name book.category_id = category.id book.save! end drop_column :categories, :category_name endend

Tuesday, April 27, 2010

Page 49: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

• SASS

•Миграции• Webrat

Tuesday, April 27, 2010

Page 50: Пак ли този Rails?

Selenium

Tuesday, April 27, 2010

Page 51: Пак ли този Rails?

1. труден за поддръжка

Tuesday, April 27, 2010

Page 52: Пак ли този Rails?

2. бавен

Tuesday, April 27, 2010

Page 53: Пак ли този Rails?

Webrat

Tuesday, April 27, 2010

Page 54: Пак ли този Rails?

fill_in "Сума", :with => '1000'fill_in "Данък", :with => "20%"click_button "Изчисли"response.should include_text("1200 лв")

Tuesday, April 27, 2010

Page 55: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

• SASS

•Миграции• Webrat

• Cucumber

Tuesday, April 27, 2010

Page 56: Пак ли този Rails?

business domain

Tuesday, April 27, 2010

Page 57: Пак ли този Rails?

business analyst

Tuesday, April 27, 2010

Page 58: Пак ли този Rails?

use casesuser stories

Tuesday, April 27, 2010

Page 59: Пак ли този Rails?

Feature: Purchasing things In order for us to make money the user should be allowed to easily purchase our products Scenario: Purchases for more than 2500 should offer 20% Given there are these products: | Name | Price | | MacBook Pro | 2000 | | ThinkPad | 1000 | When I add 1 "MacBook Pro" to my basket And I add 1 "ThinkPad" to my basket Then the final price should be 2600

Tuesday, April 27, 2010

Page 60: Пак ли този Rails?

Feature: Purchasing things In order for us to make money the user should be allowed to easily purchase our products Scenario: Purchases for more than 2500 should offer 20% Given there are these products: | Name | Price | | MacBook Pro | 2000 | | ThinkPad | 1000 | When I add 1 "MacBook Pro" to my basket And I add 1 "ThinkPad" to my basket Then the final price should be 2600

Изпълнимо

Tuesday, April 27, 2010

Page 61: Пак ли този Rails?

Given /^there are these products$/ do |table| ...end

When /^I add (\d+) "(.*?)" to my basket$/ do |count, name| ...end

Then /^the final price should be (\d+)$/ do |price| ...end

Feature: Purchasing things In order for us to make money the user should be allowed to easily purchase our products Scenario: Purchases for more than 2500 should offer 20% Given there are these products: | Name | Price | | MacBook Pro | 2000 | | ThinkPad | 1000 | When I add 1 "MacBook Pro" to my basket And I add 1 "ThinkPad" to my basket Then the final price should be 2600

Tuesday, April 27, 2010

Page 62: Пак ли този Rails?

Tuesday, April 27, 2010

Page 63: Пак ли този Rails?

Функционалност: Купуване на продукти За да печелим пари потребителят трябва да може лесно да пазарува продукти Сценарий: Поръчките за повече от 2000 трябва да имат 20% отстъпка Дадено че има следните три продукта: | Име | Price | | MacBook Air | 2000 | | ThinkPad | 1000 | Когато добавя 1 "MacBook Air" в кошницата си И добавя 2 "ThinkPad" в кошницата си То цената трябва да е 2600

Краставицата ми говори български

Tuesday, April 27, 2010

Page 64: Пак ли този Rails?

OH HAI: I CAN BAI STUFF SO WE CAN HAZ MONEYZ N00BZ SHOULD BAI STUFF MISHUN: BAI STUFF CHEAPER I CAN HAS CHEEZEBURGERS: | NAME | MONEYZ | | MacBook Air | 2000 | | ThinkPad | 1000 | WEN I AD 1 "MacBook Air" TO MAI BASKET AN I AD 1 "ThinkPad" TO MAI BASKET DEN I SHOULD PAY 2600

Краставицата ми говори lolspeak

Tuesday, April 27, 2010

Page 65: Пак ли този Rails?

2. Малки интересни неща

• Конзола• Debugger

• HAML

• SASS

•Миграции• Webrat

• Cucumber

• Test-Driven

Tuesday, April 27, 2010

Page 66: Пак ли този Rails?

unit teststest-driven development

Tuesday, April 27, 2010

Page 67: Пак ли този Rails?

behavior-driven development

Tuesday, April 27, 2010

Page 68: Пак ли този Rails?

Test-Driven Development is not about testing.

Tuesday, April 27, 2010

Page 69: Пак ли този Rails?

Tuesday, April 27, 2010

Page 70: Пак ли този Rails?

ruby е гъвкав:

stubs & mocks

Tuesday, April 27, 2010

Page 71: Пак ли този Rails?

1. За Rails накратко

2. Няколко интересни неща

3. Обществото около Rails

Планът

Tuesday, April 27, 2010

Page 72: Пак ли този Rails?

хората

Tuesday, April 27, 2010

Page 73: Пак ли този Rails?

jQuery

Tuesday, April 27, 2010

Page 74: Пак ли този Rails?

Yehuda Katz

Tuesday, April 27, 2010

Page 75: Пак ли този Rails?

Yehuda Katz

jQuery Rails 3Tuesday, April 27, 2010

Page 76: Пак ли този Rails?

JavaScript

Tuesday, April 27, 2010

Page 77: Пак ли този Rails?

prototype.js

Tuesday, April 27, 2010

Page 78: Пак ли този Rails?

Rails is about less code.- David Heinemeier Hansson

Tuesday, April 27, 2010

Page 79: Пак ли този Rails?

Tuesday, April 27, 2010

Page 80: Пак ли този Rails?

Tuesday, April 27, 2010

Page 81: Пак ли този Rails?

много колоритни хора

Tuesday, April 27, 2010

Page 82: Пак ли този Rails?

Giles Bowkett

Tuesday, April 27, 2010

Page 83: Пак ли този Rails?

_why the lucky stiff

Tuesday, April 27, 2010

Page 84: Пак ли този Rails?

Zed ShawTuesday, April 27, 2010

Page 85: Пак ли този Rails?

Има и компании

Tuesday, April 27, 2010

Page 86: Пак ли този Rails?

Tuesday, April 27, 2010

Page 87: Пак ли този Rails?

Tuesday, April 27, 2010

Page 88: Пак ли този Rails?

блогове

Tuesday, April 27, 2010

Page 89: Пак ли този Rails?

Tuesday, April 27, 2010

Page 90: Пак ли този Rails?

Екосистема

Tuesday, April 27, 2010

Page 91: Пак ли този Rails?

Най-хубавото нещо:

Общността

Tuesday, April 27, 2010

Page 92: Пак ли този Rails?

Отворен (OS) модел за:

кодметодипринципи

Tuesday, April 27, 2010

Page 93: Пак ли този Rails?

?Tuesday, April 27, 2010

Page 94: Пак ли този Rails?

http://skanev.com/@skanev

Tuesday, April 27, 2010

Page 95: Пак ли този Rails?

The happy programmer 2

Nikolay Bachiyski&

Stefan Kanev

Sunday, 10:00, OpenFest

Tuesday, April 27, 2010