Challenges – 2 slides Opportunities – 4 slides How ? - 3 slides Recommendations – 1 slide
Slides
-
Upload
rubyonrailsdude -
Category
Business
-
view
1.421 -
download
1
description
Transcript of Slides
Ruby on Rails
An Introduction
Mark S. Maglana, CompE, MM
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
“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 Chuhttp://tinyurl.com/zz995
Ruby on Rails
A Programming Language
A Web Framework built w/ Ruby
Hold it right there, sparky...
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
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.
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.
Other Examplesdoor.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 = 1212123really_big_number = 1412432423429340234581340234pretty_number = 12_000_000_000
And here's one more...class Personattr_accessor :name, :age, :sex
end
person = Person.newperson.name = 'Perting E. Soga'person.age = 36person.sex = 'M'
puts person.name # Perting E. Sogaputs person.age # 36puts person.sex # M
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)
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
Show me the money!code
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.
Recommended Set-up
Internet Apache 2.2+
MongrelMongrel Mongrel
database
mod_proxymod_proxy_balancer
HTTP
HTTP HTTP HTTP
Additional Reading» www.ruby-lang.org
» www.rubyonrails.org
» http://pine.fm/LearnToProgram/
» 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
And we're done!