This document provides an overview of Ruby and Rails. It notes that Ruby was created in Japan by Yukihiro Matsumoto in 1993. Rails was created in Denmark by David Heinemeier Hansson in 2004 to build the BaseCamp application. It compares package ecosystems across languages and frameworks, demonstrating that RubyGems has the most packages of the listed options. It also shows multiple ways to write the same program in Ruby and discusses best practices like testing, short methods, and extracting duplicate logic.
3. RAILS
•
Denmark
•
David Heinemeier Hansson a.k.a
DHH
•
BaseCamp / 37 signals
•
July 2004
•
“The best frameworks are in my
opinion extracted, not envisioned.
And the best way to extract is first
to actually do.”
8. MANY WAYS TO DO IT
n = 15!
!
(1..n).each do |i|!
n_zvezdic = (i - 1) * 2 + 1!
n_presledkov = n - i!
!
(1..n_presledkov).each do!
putc " "!
end!
!
(1..n_zvezdic).each do!
putc "*"!
end!
!
putc "n"!
end!
!
9. MANY WAYS TO DO IT
n = 15!
!
(1..n).each do |i|!
n_zvezdic = (i - 1) * 2 + 1!
n_presledkov = n - i!
!
n_presledkov.times do!
print " "!
end!
!
n_zvezdic.times do!
print "*"!
end!
!
print "n"!
end!
!
10. MANY WAYS TO DO IT
n = 15!
!
(1..n).each do |i|!
n_zvezdic = (i - 1) * 2 + 1!
n_presledkov = n - i!
!
print " " * n_presledkov!
!
!
!
print "*" * n_zvezdic!
!
!
!
print "n"!
end!
!
11. MANY WAYS TO DO IT
n = 15!
!
(1..n).each do |i|!
n_zvezdic = (i - 1) * 2 + 1!
n_presledkov = n - i!
!
puts " " * n_presledkov + "*" * n_zvezdic!
!
!
!
!
!
!
!
!
end!
!
12. MANY WAYS TO DO IT
n = 15!
!
n.times do |i|!
n_zvezdic = i * 2 + 1!
n_presledkov = n - i - 1!
!
puts " " * n_presledkov + "*" * n_zvezdic!
end!
!
!
!
!
!
!
!
!
!
13. MANY WAYS TO DO IT
n = 15!
!
n.times{|i| puts " "*(n-i-1) + "*"*(i*2+1)}!
!
!
!
!
!
!
!
!
!
14. MANY WAYS TO DO IT
n = 15!
!
(1..n).each do |i|!
n_zvezdic = (i - 1) * 2 + 1!
n_presledkov = n - i!
!
(1..n_presledkov).each do!
putc " "!
end!
!
(1..n_zvezdic).each do!
putc "*"!
end!
!
putc "n"!
end!
!
15. MANY WAYS TO DO IT
n = 15!
!
n.times{|i| puts " "*(n-i-1) + "*"*(i*2+1)}!
!
!
!
!
!
!
!
!
!
16. MANY WAYS TO DO IT
n = 15!
!
n.times{|i| puts " "*(n-i-1) + "*"*(i*2+1)}!
!
Java:!
class Test { public static void main(String args[]) {} }!
!
!
!
!
!
!
!
17. MANY WAYS TO DO IT
n = 15!
!
n.times{|i| puts " "*(n-i-1) + "*"*(i*2+1)}!
!
!
!
!
!
!
!
!
!
20. BEST PRACTICES
Short methods, self-commenting code
+ readability
+ testing
!
You only need comments when you know your code
is written so bad that people won’t understand it.