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

Пак ли този Rails?

Jul 09, 2015

Download

Technology

Stefan Kanev

Презентация от OpenFest 2009
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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