Ruby on rails - TEI Peiraeus

  • 536 views
Uploaded on

Η πρώτη μας παρουσίαση για ruby on rails στο ΤΕΙ Πειραιά, στις 9/12/2011.

Η πρώτη μας παρουσίαση για ruby on rails στο ΤΕΙ Πειραιά, στις 9/12/2011.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
536
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
11
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ruby on Rails "Strong like Bruce Lee   efficient As Einstein"
  • 2. Παρουσίαση Ruby on Rails
    • Μιχάλης Ζαμπάρας
    • Γιάννης Δεληγιάννης
    • PreOpenfest Event
    • osLab
  • 3. Τι είναι το openfest;
      • Προώθηση τεχνολογιών ανοιχτού / ελεύθερου λογισμικού
      • Δημιουργία ομάδων μεταξύ μας και συμμετοχή στην ανάπτυξη open source projects
    • Μα πάνω από όλα...
  • 4. Have Fun!
  • 5. Τι είναι η ruby;
    • «Καθαρό» συντακτικό, χωρίς περιττά στοιχεία
    • Αντικειμενοστραφής γλώσσα με πολλά functional χαρακτηριστικά
    • Interpreter, strong και dynamic typing
    • Ιδανική για δημιουργία DSL και dynamic metaprogramming
    • Ισχυρή και φιλική κοινότητα
  • 6. Λίγη ιστορία...
    • Yukihiro Matsumoto
    • 1995 εμπνευσμένη
    • Από τη smalltalk
    • 1999 Μεταφράστηκε σε
    • Αγγλικά το documentation
    • 2004 ξεκινά να γίνεται γνωστή η ruby… ο λόγος;;
  • 7. Ruby – Από εδώ και πέρα τι;
    • Τωρινή έκδοση 1.9.3
    • Οδεύουμε προς την έκδοση 2
    • Πρόκειται να γίνει ISO
  • 8. Τι είναι η Rails ; 1/2
    • Το πιο δημοφιλές web framework που υπάρχει αυτή τη στιγμή
    • Δημιουργήθηκε το 2004 από την 37 signals
    • Sites σε Rails:
    • Twitter
    • Github
    • Groupon
    • Diaspora
    • Basecamp
    • κλπ.
  • 9. Τι είναι η Rails; 2/2
    • Από τα πρώτα MVC frameworks, ενέπνευσε πολλά άλλα
    • Αρκετά ώριμο (αναπτύσσεται 8 χρόνια)
    • Έμφαση στις σωστές πρακτικές της μηχανικής λογισμικού
    • « Testing is like a religion in ruby community »
  • 10. Ξεκινώντας με τη Ruby (simple one liners)
    • Επανάληψη στην ruby
    • 10.times do puts “I love ruby!” end
    • (1..10).each do |i| print “I love rails version #{i}” end
    • 3.upto(15) { |tmp| p “Number is #{tmp}” }
    • x = 1; x = x + 2 while x < 300
    • %w{a e i o u}.each { |vowel| p vowel }
    • Δομές ελέγχου
    • x = 5; y = 10; p “x is smaller than y” if x < y
    • x = 5; y = 10; p “x is smaller than y” unless x > y
    • Switch / case (no example, sorry)
  • 11. Περισσότερη μαγεία
    • ('A'..'Z').include?('R') # => επιστρέφει true
    • “ I am a happy string :D”.class # => String
    • String.methods.grep(/^an/) # => ancestors, anonymous
    • Ready to fly??
    • (1..100).select{ |k| k % 2 == 0 }
    • tmp_random_name = File.read(“data.txt”)
    • [56, -34, 452, 5].min # => -34
    • require ‘nokogiri’
    • require ‘open-uri’
    • doc = Nokogiri::HTML(open('http://www.google.com'))
  • 12. Ξεκινώντας με την Rails
    • MVC ( Model – View – Controller)
  • 13. Ξεκινώντας με την Rails
    • ORM ( Object Relational Mapping)
    • REST αντιστοίχιση με CRUD
    • Για κάθε action ενός resource, αντιστοιχίζεται το http verb
    • Actions: index (get), show(get), new(get), create(post), edit(get), update(put), destroy(delete)
    • Χρήση του get, post, put, delete ανάλογα το action
  • 14. Ξεκινώντας με την Rails
    • Migrations
    • TDD
    • Red-Green-Refactor
    • How we test?
    • From bottom to up or from up to bottom?
    • Unit tests / functional tests / integration tests
    • Fixtures / Factories
    • mock / stub
    • Πολλά test frameworks
    • Unit test, Rspec, capybara, cucumber
  • 15. Απλά παραδείγματα tests
    • Integration tests με το capybara:
    • describe &quot;Failed Login&quot; do
    • it &quot;Shows error message on empty email and empty password &quot; do
    • visit new_user_session_path
    • click_button “Login&quot;
    • current_path.should eq(new_user_session_path)
    • page.should have_content(&quot;Invalid email or password.&quot;)
    • end
    • it &quot;Shows error message on invalid username and password&quot; do
    • visit new_user_session_path
    • fill_in &quot;Email&quot;, :with => &quot;emaildoesn'texists@example.com&quot;
    • fill_in &quot;Password&quot;, :with => &quot;wrong password&quot;
    • click_button “Login&quot;
    • current_path.should eq(new_user_session_path)
    • page.should have_content(&quot;Invalid email or password.&quot;)
    • end
    • end
  • 16. Απλά παραδείγματα tests
    • Unit tests με το rspec:
    • Page model:
    • class Page < ActiveRecord::Base
    • validates :name, :presence => true
    • end
    • Test Page model:
    • it &quot;should have a name&quot; do
    • Page.new(name: nil).should have(1).error_on(:name)
    • end
  • 17. Ώρα για λίγο εξάσκηση!