Ruby on Rails
ihower@gmail.com
   Ruby Taiwan
2010/5@
Agenda

• Who am I
• My story about web development
• Introduction to Rails
• Rails on Rails live demo
• Why Ruby?
Who am I?

•        (a.k.a. ihower)

•
•                    &       (   )


• Ruby on Rails            (since 2006)
http://ihower.tw/blog/
http://twitter.com/ihower
http://ruby.tw
Ruby Tuesday Meetings
http://rubyconf.tw
Where am I?
Software




Desktop    Mobile    Web
Web application



                                Ruby
Java/.NET                PHP   Python
                            ...
My story about
web development
1990
Tim Berners-Lee
  World Wide Web
1999

•
•   M$ FrontPage         (   !)


•                  CGI
2003
•   Perl CGI

•
CGI, Perl
                           HTML
#!/usr/bin/perl

open(FILE, "count.txt");
$num = <FILE>; $num++;
close (FILE);

...
2002~2004


•       Dreamweaver

•                     PHP4
    & MySQL
PHP
                   HTML

<?php
$counter = intval(file_get_contents("counter.dat")) + 1;
$fp = fopen("counter.dat", "w"...
PHP & MySQL
<?php

	 	    $db = mysql_connect("localhost", "root", "password");
	 	    mysql_query("SET NAMES 'utf8'");
	 ...
2003 (   )
PHP sucks!
2005
•   PHP web framework

•
Web framework?

• MVC
• ORM
• URL   Template   Session
        Ajax         ......
MVC
•
          Model       Controller View
•    Model
    •
•    View
    •        Ruby     HTML


•    Controller       ...
1.
                 Controller

                              2.
            3.
4.

     View                     Model


...
MVC?
•
•
    (DRY: Don’t repeat yourself)
•
ORM

   • Object-relational mapping
   •
@posts = Post.find(:all, :order => "id desc", :limit => 5 )
@posts.each do |post|...
ORM?

• SQL
• ORM
        routine     SQL

•
•                 SQL
2006
•   Ruby on Rails

•
Rails?
•                (   MIT   )   Web
      database-backed

•   MVC (Model-View-Control )

•   (        )            ...
•   Ruby

•   Don’t Repeat Yourself (DRY)    •
•   Convention Over Configuration
                                   •
     ...
Ruby on Rails            ?
•                             (

                 )




•   (   Joomla       Durpal
           ...
Rails
•   2005   DHH                    Hacker

•   2006   Rails      Jolt

•   2005~2006     Ruby/Rails
                1...
Rails                                        ?
          Java(Spring/Hibernate)        Rails


          4               2...
Rails                                                  ?

•   Justin Gehtland              Java :Rails = 3.5 : 1

•   Proc...
Rails clone
Rails                   ?
                                M




V                 C



            MVC
       Model-View-C...
Rails live demo
Creating a weblog in 15 minutes
User stories

•
•
•
•
Why Ruby?
Ruby?
•
    (interpreted)

•
•
•                        a.k.a. Matz
    •           Lisp, Perl,   Smalltalk

    •        ...
a trivial Ruby example


 str = "May Ruby be with you!"
 5.times { puts str }
the example tells us:

•        (typing)

•
•        (code block)
code lines matters
1. more code more bugs
2. more code needs IDE
3. more code needs more time to read
Fred Brooks’ law
“programmer generate about same
amount of code per day regardless
        of the language”
•   Web framework like Rails has
    •   MVC
    •   ORM
•   Ruby is
    •   interpreted scripting language
    •   dynami...
Rails   Ruby

http://ihower.tw/training
One more thing...
If I were a college
      student...
1. Learn more
programming language
   Scripting Language: Ruby, Python, JavaScript
Functional Language: Erlang, Scala, Has...
2. Master Unix
command Line
3. Use Mac or Ubuntu
     Windows   Unix-like
4. Learn Git or Hg
         :
Live demo
(       )
5. Learn OOP
6. Be Agile
       ?
http://ihower.tw/blog/archives/1750
:




http://local.joelonsoftware.com/wiki/The_Joel_on_Software_Translation_Project:
7. Learn SQL
8. Learn HTTP
9.
Conference & Meetings
• Ruby Tuesday meeting (        )

• RubyConf Taiwan (2010/4/25)
• OSDC.TW (2010/4/24)
• COSCUP (2010/8/14)
• RubyKaigi (2...
ihower

http://ihower.tw/blog/books
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
遇見 Ruby on Rails
Upcoming SlideShare
Loading in...5
×

遇見 Ruby on Rails

8,733

Published on

2 Comments
24 Likes
Statistics
Notes
  • Need : 'Ruby on Rail Developer' at NJ
    Position : Ruby on Rail Developer

    Location : NJ

    Duration : 6+ Months



    Client is looking for “Ruby on Rail Developer” Experience with Ruby on Rail Developer, Heroku or Engine Factory, ect;

    Client is Looking more of an architect on such development methodology but he/she has to know how to code too.
    Any experience on Heroku or Engine Factory would be a plus.
    Kindly send your resume along with the following information……………………….Please,

    FULL NAME:

    Best contact number:

    Current Location:

    Visa Status (US Citizen/GC):

    Availability (specify the notice period, if so required):

    Expected Hourly / PERANNUM Rate (on W2 Please specify):

    Ready to relocate to NJ, if hired for this position (Yes/No):

    Ready to Face to Face Interview (Yes/No):

    Vijay Bhaskar



    Globalnest LLC

    281 state Route 79, Suite 208

    Morganville, NJ 07751



    Voice: (732)-333-4808

    Fax: (732) 333-5946

    Email: bhaskar@globalnest.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Hi

    Please find below the requirement presently open with us. Please send me your updated word format resume along with following information.



    Position : Ruby on Rail Developer

    Location : NJ

    Duration : 6+ Months



    Client is looking for “Ruby on Rail Developer” Experience with Ruby on Rail Developer, Heroku or Engine Factory, ect;

    Client is Looking more of an architect on such development methodology but he/she has to know how to code too.
    Any experience on Heroku or Engine Factory would be a plus.
    FULL NAME:

    Best contact number:

    Current Location:

    Visa Status (US Citizen/GC):

    Availability (specify the notice period, if so required):

    Expected Hourly / PERANNUM Rate (on W2 Please specify):

    Ready to relocate to NJ, if hired for this position (Yes/No):

    Ready to Face to Face Interview (Yes/No):
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
8,733
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
242
Comments
2
Likes
24
Embeds 0
No embeds

No notes for slide

Transcript of "遇見 Ruby on Rails"

  1. 1. Ruby on Rails ihower@gmail.com Ruby Taiwan 2010/5@
  2. 2. Agenda • Who am I • My story about web development • Introduction to Rails • Rails on Rails live demo • Why Ruby?
  3. 3. Who am I? • (a.k.a. ihower) • • & ( ) • Ruby on Rails (since 2006)
  4. 4. http://ihower.tw/blog/
  5. 5. http://twitter.com/ihower
  6. 6. http://ruby.tw
  7. 7. Ruby Tuesday Meetings
  8. 8. http://rubyconf.tw
  9. 9. Where am I?
  10. 10. Software Desktop Mobile Web
  11. 11. Web application Ruby Java/.NET PHP Python Perl
  12. 12. My story about web development
  13. 13. 1990 Tim Berners-Lee World Wide Web
  14. 14. 1999 • • M$ FrontPage ( !) • CGI
  15. 15. 2003 • Perl CGI •
  16. 16. CGI, Perl HTML #!/usr/bin/perl open(FILE, "count.txt"); $num = <FILE>; $num++; close (FILE); open(WRITETO, ">count.txt"); print WRITETO "$num"; close (WRITETO); print <<PRINTAREA; content-type:text/htmlnn <style> <!-- body {background-color: black; line-height:1; margin-top: 0cm; margin-left: 0cm; margin-right: 0cm} --></style> <body><center> <b><font size=1 color=white> $num</font></b> PRINTAREA
  17. 17. 2002~2004 • Dreamweaver • PHP4 & MySQL
  18. 18. PHP HTML <?php $counter = intval(file_get_contents("counter.dat")) + 1; $fp = fopen("counter.dat", "w"); fwrite($fp, $counter); fclose($fp); ?> <p>Visitors: <?php echo @counter %></p>
  19. 19. PHP & MySQL <?php $db = mysql_connect("localhost", "root", "password"); mysql_query("SET NAMES 'utf8'"); mysql_select_db($SERVER['db']); ?> <html> <? $sql="select * from news where Class='1' or Class='3' order by CTDate desc limit 0,5"; $result= mysql_query($sql); while ( $arr=mysql_fetch_array($result) ) { echo <<<NEWSEND <div class="box"> <span class="box-title-1"> <b> $arr[Title] </b> $arr[CTDate] </span> <div class="box-content"> $arr[Text] </div> </div> NEWSEND; } ?> </html>
  20. 20. 2003 ( )
  21. 21. PHP sucks!
  22. 22. 2005 • PHP web framework •
  23. 23. Web framework? • MVC • ORM • URL Template Session Ajax ......
  24. 24. MVC • Model Controller View • Model • • View • Ruby HTML • Controller Model • (e.g. ) Request Model View (e.g. HTML)
  25. 25. 1. Controller 2. 3. 4. View Model DB
  26. 26. MVC? • • (DRY: Don’t repeat yourself) •
  27. 27. ORM • Object-relational mapping • @posts = Post.find(:all, :order => "id desc", :limit => 5 ) @posts.each do |post| ... end
  28. 28. ORM? • SQL • ORM routine SQL • • SQL
  29. 29. 2006 • Ruby on Rails •
  30. 30. Rails? • ( MIT ) Web database-backed • MVC (Model-View-Control ) • ( ) Ruby Ajax ORM (object-relational-mapping) • 2004 David Heinemeier Hanson(DHH) 37signals
  31. 31. • Ruby • Don’t Repeat Yourself (DRY) • • Convention Over Configuration • • •
  32. 32. Ruby on Rails ? • ( ) • ( Joomla Durpal CMS •
  33. 33. Rails • 2005 DHH Hacker • 2006 Rails Jolt • 2005~2006 Ruby/Rails 1552% • Ruby Tiobe 26 11
  34. 34. Rails ? Java(Spring/Hibernate) Rails 4 20 4 ( 5 ) 3293 1164 1161 113 / 62/549 55/126 Justin Gehtland Java Rails
  35. 35. Rails ? • Justin Gehtland Java :Rails = 3.5 : 1 • Proc.net PHP : Rails = 10 : 1 • JavaEye JAVA : Rails = 10 : 1 • thegiive( Rails ) PHP : Rails = 8 : 1
  36. 36. Rails clone
  37. 37. Rails ? M V C MVC Model-View-Control
  38. 38. Rails live demo Creating a weblog in 15 minutes
  39. 39. User stories • • • •
  40. 40. Why Ruby?
  41. 41. Ruby? • (interpreted) • • • a.k.a. Matz • Lisp, Perl, Smalltalk • Happy
  42. 42. a trivial Ruby example str = "May Ruby be with you!" 5.times { puts str }
  43. 43. the example tells us: • (typing) • • (code block)
  44. 44. code lines matters 1. more code more bugs 2. more code needs IDE 3. more code needs more time to read
  45. 45. Fred Brooks’ law “programmer generate about same amount of code per day regardless of the language”
  46. 46. • Web framework like Rails has • MVC • ORM • Ruby is • interpreted scripting language • dynamic typing language • object oriented programming
  47. 47. Rails Ruby http://ihower.tw/training
  48. 48. One more thing...
  49. 49. If I were a college student...
  50. 50. 1. Learn more programming language Scripting Language: Ruby, Python, JavaScript Functional Language: Erlang, Scala, Haskell, Clojure
  51. 51. 2. Master Unix command Line
  52. 52. 3. Use Mac or Ubuntu Windows Unix-like
  53. 53. 4. Learn Git or Hg :
  54. 54. Live demo ( )
  55. 55. 5. Learn OOP
  56. 56. 6. Be Agile ?
  57. 57. http://ihower.tw/blog/archives/1750
  58. 58. : http://local.joelonsoftware.com/wiki/The_Joel_on_Software_Translation_Project:
  59. 59. 7. Learn SQL
  60. 60. 8. Learn HTTP
  61. 61. 9. Conference & Meetings
  62. 62. • Ruby Tuesday meeting ( ) • RubyConf Taiwan (2010/4/25) • OSDC.TW (2010/4/24) • COSCUP (2010/8/14) • RubyKaigi (2010/8/27 )
  63. 63. ihower http://ihower.tw/blog/books
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×