TechNinjas Ep.1: Intro to Ruby On Rails
Upcoming SlideShare
Loading in...5
×
 

TechNinjas Ep.1: Intro to Ruby On Rails

on

  • 795 views

On October 6 2011, Seeqnce hosted a full house of developers, entrepreneurs and startup fans to watch Costa Nicolaou (@cnicolaou) give a talk about Ruby on Rails. ...

On October 6 2011, Seeqnce hosted a full house of developers, entrepreneurs and startup fans to watch Costa Nicolaou (@cnicolaou) give a talk about Ruby on Rails.

As a master of Rails (we call his kind Ninjas), Costa took the audience through the MVC fundamentals of the platform, dived straight into code examples and gave real-world examples of why RoR is such an appealing framework to adopt.

Make sure you check out the full video at: http://bit.ly/p8pAp0

Statistics

Views

Total Views
795
Views on SlideShare
732
Embed Views
63

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 63

http://blog.seeqnce.com 56
http://paper.li 3
http://test.blog.seeqnce.com 2
http://us-w1.rockmelt.com 1
http://www.tumblr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

TechNinjas Ep.1: Intro to Ruby On Rails TechNinjas Ep.1: Intro to Ruby On Rails Presentation Transcript

  • RUBY ON RAILSAN INTRODUCTION
  • ABOUT ME• Constantine Nicolaou• Software Developer• Works for Mekentosj B.V. (UK)• twitter: @cnicolaou• github: cnicolaou
  • ABOUT RUBY• Creator: Yukihiro Matsumoto (Matz)• Released in 1995• Open Source• Remained relatively underused outside of Japan until Rails brought it to prominence (2003)• Cross platform (OS X, Linux and Windows)• RubyGems: package manager for Ruby (gem install rails) View slide
  • ABOUT RAILS (ELEVATOR PITCH)• Open Source web framework created by David Heinemeier Hansson (DHH) in 2003 (get it from github.com/rails/rails)• Developed with happiness and productivity of developers in mind• Beautiful and readable syntax (thanks to Ruby)• Favours convention over configuration (plural tables names, singular model names)• Don’t Repeat Yourself (DRY) View slide
  • BEAUTIFUL SYNTAX? REALLY? RAILS CONTROLLER CLASS
  • MORE ON RUBY• Everything is an Object• Dynamic (no type declarations)• No brackets for simple method calls• Last statement of a method is automatically returned (18:09) costa:~/dev/apps$ irb ree-1.8.7-2011.03 :001 > def add(number1, number2); number1 +number2; end; ree-1.8.7-2011.03 :002 > add(1, 5) => 6
  • RUBY DATA STRUCTURESdata type literal description integer 1 range 1..5 string ‘rails’ float 1.0 floating-point representation symbol :rails string for identifying purpose array [‘a’, ‘b’] list of objects, fixed order hash {:a=>1} Collection of key, value pairs
  • CODE EXAMPLES simple loop in Ruby simple loop in PHP loop in Java simplest loop so far?
  • SO, WHY RAILS?• Easy, fast and fun way to develop web applications• MVC (Model-View-Controller) architectural pattern• Predefined application structure• Rails was built with testing support in mind (test folder exists by default in the application structure)• Different environments within the same application (database.yml)• Active community and lots of resources to learn from
  • ALSO, BIG NAMESRUBYONRAILS.ORG/APPLICATIONS
  • RAILS MVCHOW DOES IT WORK?
  • ACTIVERECORD(OBJECT-RELATION MAPPING (ORM) PUT ON RAILS)• ORM pattern: An object that wraps a row in a database table... and adds domain logic on that data (Martin Fowler)• Ruby classes that are located under app/models• One database table maps to one Ruby class• Attributes are columns• Associations between objects (A user has many blog posts)
  • SHOW US SOME CODE ...switching to terminal
  • ACTIVERECORD - 2• Associations (has_one, has_many, belongs_to, has_and_belongs_to_many)• Validations: rules in models on objects validates_presence_of :name• Callbacks: before_save, before_update, after_create
  • ACTIONVIEW• Embedding Ruby in HTML (ERb template engine) <h1>People</h1> <ul> <% @people.each do |person| -%> <li><%= person.first_name %></li> <% end -%> </ul>• Forms: Form Helpers / to HTML / to params / to ActiveRecord then validate attributes and save
  • BACK TO PAPERSPAPERS: SEARCH, READ, CITE, SHARE
  • AVOIDING THIS
  • LIVFE IS PAPERSCOLLABORATIVE SOLUTION Papers Livfe Your Papers life, live.
  • PAPERS LIVFE• Organise and share papers using Livfe Collections• Micro comments, reviews and ratings on papers• Send and receive papers recommendations• Adds collaboration to existing workflow
  • PAPERS LIVFE (UNDER THE HOOD)• Based on Ruby on Rails• Private APIs to Papers apps (Mac, iOS)• Different representational formats based on request types• Recommend papers to users based on criteria (for example: keywords or field of interest or job title)
  • EXAMPLE OF AN APIConsuming the API (with cURL)curl -X GET -H "Accept: text/xml" http://username:password@livfe.net/api/v1.2/collections/
  • ONE MORE THING
  • “Your time is limited, so don’t waste it living someoneelse’s life… Stay hungry. Stay foolish.”Steve Jobs, Stanford 2005
  • THANK YOUQUESTIONS?
  • RESOURCES railscasts.com tryruby.orgruby.railstutorial.orgrailsforzombies.org peepcode.com