ruby on railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · ruby on...
TRANSCRIPT
![Page 1: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/1.jpg)
Ruby On Railsweb development that doesn’t hurt
Boris Nadionastrails.com
![Page 2: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/2.jpg)
web development that doesn’t hurt
![Page 3: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/3.jpg)
doesn’t hurt businesses
![Page 4: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/4.jpg)
doesn’t hurt developers
![Page 5: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/5.jpg)
software
![Page 6: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/6.jpg)
software development background
![Page 7: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/7.jpg)
organic
![Page 8: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/8.jpg)
you always find things you want to change
![Page 9: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/9.jpg)
great ideas
![Page 10: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/10.jpg)
adaptive developmentagile, scrum, xp, etc.
![Page 11: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/11.jpg)
small iterations
![Page 12: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/12.jpg)
continuous delivery
![Page 13: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/13.jpg)
simplicity
![Page 14: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/14.jpg)
tools?
![Page 15: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/15.jpg)
what programmers need?
![Page 16: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/16.jpg)
inspiration
![Page 17: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/17.jpg)
challenge
![Page 18: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/18.jpg)
compensation
![Page 19: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/19.jpg)
do programmerslike programming?
![Page 20: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/20.jpg)
programmers don’t like programming
we would be programming assembler still
![Page 21: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/21.jpg)
solving complex problems in beautiful ways
![Page 22: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/22.jpg)
programming languageis a tool
![Page 23: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/23.jpg)
happy
![Page 24: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/24.jpg)
easy to learn
![Page 25: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/25.jpg)
make problems easier to solve
![Page 26: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/26.jpg)
increase chance of success
![Page 27: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/27.jpg)
that’s why Ruby on Rails programmers are happy
![Page 28: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/28.jpg)
Ruby on Rails born to be agile
![Page 29: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/29.jpg)
extremely flexible
![Page 30: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/30.jpg)
rapid development
![Page 31: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/31.jpg)
focus on productivity
![Page 32: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/32.jpg)
maintainable code
![Page 33: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/33.jpg)
free
![Page 34: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/34.jpg)
what is Ruby on Rails?
![Page 35: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/35.jpg)
Ruby is a language
![Page 36: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/36.jpg)
Yakihiro Matsumoto “matz”
![Page 37: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/37.jpg)
1993
![Page 38: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/38.jpg)
1995
![Page 39: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/39.jpg)
free to use, copy, modify, and distribute
![Page 40: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/40.jpg)
POLSprinciple of least surprise
![Page 41: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/41.jpg)
easy to read a code
![Page 42: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/42.jpg)
guess how it works -guess correctly
![Page 43: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/43.jpg)
humans should easily understand the code, not
computers
![Page 44: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/44.jpg)
are you a human?
![Page 45: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/45.jpg)
3.times { say "Hello" }
return if presentation.looks?(:boring)
["espresso", "cappuccino", "latte"].each do |drink| print drink.capitalizeend
![Page 46: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/46.jpg)
almost pure English
![Page 47: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/47.jpg)
less code
![Page 48: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/48.jpg)
less code - less bugshigh maintainability
![Page 49: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/49.jpg)
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class TimeServer { private static class TellTime extends Thread { private Socket soc; public TellTime(Socket soc) { super(); this.soc = soc; } public void run() { try { this.soc.getOutputStream().write( new Date().thisoString().getBytes()); } catch (Exception e) { } finally { try { this.soc.close(); } catch (IOException e1) { } } } } public static void main(String args[]) throws Exception { ServerSocket server = new ServerSocket(12345); while (true) { new TellTime(server.accept()).start(); } } }
require "socket" server = TCPServer.new(12345) while (session = server.accept) Thread.new(session) do |my_session| my_session.puts Time.new my_session.close end end
![Page 50: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/50.jpg)
high signal to noise ratio
![Page 51: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/51.jpg)
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Date; public class TimeServer { private static class TellTime extends Thread { private Socket soc; public TellTime(Socket soc) { super(); this.soc = soc; } public void run() { try { this.soc.getOutputStream().write( new Date().thisoString().getBytes()); } catch (Exception e) { } finally { try { this.soc.close(); } catch (IOException e1) { } } } } public static void main(String args[]) throws Exception { ServerSocket server = new ServerSocket(12345); while (true) { new TellTime(server.accept()).start(); } } }
require "socket" server = TCPServer.new(12345) while (session = server.accept) Thread.new(session) do |my_session| my_session.puts Time.new my_session.close end end
![Page 52: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/52.jpg)
less code - less efforthigh productivity
![Page 53: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/53.jpg)
credit: http://www.flickr.com/photos/slworking/
![Page 54: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/54.jpg)
Rails is a framework
![Page 55: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/55.jpg)
David Heinemeier Hansson
![Page 56: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/56.jpg)
2003
![Page 57: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/57.jpg)
MIT license
![Page 58: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/58.jpg)
opinionated
![Page 59: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/59.jpg)
convention over configuration
![Page 60: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/60.jpg)
no XML configuration files
![Page 61: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/61.jpg)
default places and names for files, tables, etc
![Page 62: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/62.jpg)
you can override everything
![Page 63: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/63.jpg)
c = Company.firstc.name
app/models/company.rbclass Company < ActiveRecord::Baseend
select * from companies limit 1;
![Page 64: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/64.jpg)
MVC
![Page 65: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/65.jpg)
Model - View - Controller
![Page 66: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/66.jpg)
concerns separation
![Page 67: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/67.jpg)
MVC
![Page 68: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/68.jpg)
business logic in modelsfetch the data
![Page 69: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/69.jpg)
credit: http://www.flickr.com/photos/simonpais/
![Page 70: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/70.jpg)
adaptersMySQL, SQLite, PostgeSQL, MS SQL, Oracle, DB2,
MongoDB, Cassandra, ...
![Page 71: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/71.jpg)
class Post < ActiveRecord::Base belongs_to :user has_many :comments
validates :subject, :presence => true validates :body, :presence => true
after_create :notify_subscibersend
![Page 72: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/72.jpg)
display logic in viewsrender the data
![Page 73: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/73.jpg)
templatesERB, HAML, Liquid, Amrita, Markaby, ...
![Page 74: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/74.jpg)
<html> <body> User <%= @user.name %>: <ul> <li>Age: <%= @user.age %></li> <li>Interests: <%= @user.interests.join(', ') %></li> <li>Occupation: <%= @user.occupation %></li> </ul></body></html>
![Page 75: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/75.jpg)
%html %body User = @user.name %ul %li Age = @user.age %li Interests = @user.interests.join(', ') %li Occupation = @user.occupation
![Page 76: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/76.jpg)
user logic in controllershandle requests
![Page 77: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/77.jpg)
RESTrepresentational state transfer
![Page 78: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/78.jpg)
GET /books {:action=>"index", :controller=>"books"}POST /books {:action=>"create", :controller=>"books"}GET /books/new {:action=>"new", :controller=>"books"}GET /books/:id/edit {:action=>"edit", :controller=>"books"}GET /books/:id {:action=>"show", :controller=>"books"}PUT /books/:id {:action=>"update", :controller=>"books"}DELETE /books/:id {:action=>"destroy", :controller=>"books"}
![Page 79: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/79.jpg)
class BooksController < ActionController::Base
def create @book = Book.new(params[:book]) if @book.save flash[:notice] = "Book created" # The entry was saved correctly, redirect to index redirect_to books_path else flash.now[:notice] = "Fix errors and try again" render :action => :new end end
...
end
![Page 80: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/80.jpg)
webserver
controller modelview
db
request
dispatch/routing
query
usesrenders
displays
simplified flow
![Page 81: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/81.jpg)
testing
![Page 82: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/82.jpg)
testing frameworkstest::unit, rspec, micronaut, cucumber, shoulda, ...
![Page 83: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/83.jpg)
TDDhttp://en.wikipedia.org/wiki/Test-driven_development
![Page 84: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/84.jpg)
BDDhttp://en.wikipedia.org/wiki/Behavior_Driven_Development
![Page 85: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/85.jpg)
TAFTtest all the f$cking time
![Page 86: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/86.jpg)
ruby gems and rails plugins
![Page 87: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/87.jpg)
bottom line
![Page 88: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/88.jpg)
optimized for programmer happiness and sustainable
productivity
![Page 90: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/90.jpg)
what do you do next?
![Page 91: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/91.jpg)
http://groups.google.com/group/israelrb
![Page 92: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/92.jpg)
learn Ruby on Rails
![Page 93: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/93.jpg)
learn the best practices
![Page 94: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/94.jpg)
apply it to yournext killer project
![Page 95: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/95.jpg)
it won’t hurt
![Page 96: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/96.jpg)
web development that doesn’t hurt
![Page 97: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/97.jpg)
Q&A
![Page 98: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/98.jpg)
does it scale?
![Page 99: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/99.jpg)
yes
![Page 100: Ruby On Railsassets.astrails.com/presentations/2011-02-17-thejunction/doesnt-hur… · Ruby On Rails web development that doesn’t hurt Boris Nadion astrails.com. web development](https://reader035.vdocument.in/reader035/viewer/2022071215/60449c992c966b44ec6bd2f4/html5/thumbnails/100.jpg)
Ruby On Railsweb development that doesn’t hurt
Boris Nadionastrails.com
Thank you!Q&A