Slides

1,724 views

Published on

Published in: Business, Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,724
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
47
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Slides

  1. 1. Ruby on Rails An Introduction Mark S. Maglana, CompE, MM
  2. 2. Let's get this out of the way... » My name is Mark S. Maglana » Bachelor's Degree in Computer Engineering from the University of San Carlos, Cebu » Master in Management from the University of the Philippines in Mindanao » Computer geek since grade 5 (BASIC, QBASIC) » Suffered through C, assembly in college » Web dude since 1997, started with ASP 1.0 » ASP.Net, PHP (w/ CakePHP) » UML, VB, .Net, C#, Java, Lotus Notes/Domino
  3. 3. “I constantly remind myself that there are multiple ways and numerous technologies [for] solving a single problem, some better than others.” “By being loyal to one technology stack, I am bound to unconsciously make biased decisions, which will ultimately hinder my ability to deliver business value.” - Stephen Chu http://tinyurl.com/zz995
  4. 4. Ruby on Rails A Programming Language A Web Framework built w/ Ruby
  5. 5. Hold it right there, sparky...
  6. 6. This is an introduction, not a tutorial We wont get in-depth with Ruby and Rails (You're too intelligent to be spoon fed) I assume you're familiar with OOP
  7. 7. Ruby » Created by Yukihiro “Matz” Matsumoto in 1993 » A language designed for humans, not compilers » A true Object-Oriented language » Everything you manipulate in Ruby is an object » They all ultimately inherit from a class named Object (Surprise! Surprise!) » Because everything is an object, there's none of that primitive types vs. reference types silliness.
  8. 8. Hello World # The famous Hello World # program is trivial in # Ruby. You don't need: # # * a "main" method # * newline escapes # * semicolons # # Here's the code: puts "Hello World!" Ruby won't force you to define a class if you don't need to. In such a case, Ruby automatically encloses your statement in an Object instance.
  9. 9. Other Examples door.close if door.is_open? 5.times { puts “Odelay!” } my_text = 'restaurant' exit unless my_text.include? 'rant' animals = ['cat', 'dog', 'fox'] animals.each {|animal| puts animal.capitalize} small_number = 1212123 really_big_number = 1412432423429340234581340234 pretty_number = 12_000_000_000
  10. 10. And here's one more... class Person attr_accessor :name, :age, :sex end person = Person.new person.name = 'Perting E. Soga' person.age = 36 person.sex = 'M' puts person.name # Perting E. Soga puts person.age # 36 puts person.sex # M
  11. 11. Ruby Conventions » Variables starting with $ are Global Variables (ex. $x, $1, $chunky_bacon) » Variables starting with @ are Instance Variables (ex. @width, @x, @y) » Variables starting with @@ are Class Variables (ex. @@brokeback_coding, @@choo_choo) » Variables without prefixes are Local Variables (ex. chicken_noodles, white_flower) » Constants are always capitalized (ex. Time, Array, LuckyPenguin)
  12. 12. Rails » Created by David Heinemeier Hansson in 2003 » A web application framework built using Ruby » Uses the Model-View-Controller (MVC) design pattern » Also uses the ActiveRecord design pattern » Some ex-Java programmers claim Rails helped them develop applications 10x faster
  13. 13. Show me the money! code
  14. 14. How Rails Works Internet Web Server controller database view /posts/show/1 posts_controller.rb model post.rb show.rhtml blog_production PostsController::show() Post::find(1) 1. 2. 3. 4. 5. 6. 7. 8. 9.
  15. 15. Recommended Set-up Internet Apache 2.2+ MongrelMongrel Mongrel database mod_proxy mod_proxy_balancer HTTP HTTP HTTP HTTP
  16. 16. Additional Reading » www.ruby-lang.org » www.rubyonrails.org » http://pine.fm/LearnToProgram/ » ruby-phil@googlegroups.com » Google for “OnLAMP Rolling with Rails” » #rubyonrails and #ruby-lang in IRC (freenode) » wiki.rubyonrails.org » api.rubyonrails.org » Agile Web Development book » Programming Ruby book
  17. 17. And we're done!

×