Suche senden
Hochladen
A Blink Into The Rails Magic
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
1,095 views
Nikos Dimitrakopoulos
Folgen
My presentation at Athens Digital Week '09
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 77
Jetzt herunterladen
Empfohlen
Extracting ruby gem
Extracting ruby gem
Yura Tolstik
Low-Maintenance Perl
Low-Maintenance Perl
Perrin Harkins
5 Tips for Better JavaScript
5 Tips for Better JavaScript
Todd Anglin
Smalltalk on rubinius
Smalltalk on rubinius
Konstantin Haase
Ruby on Rails for beginners
Ruby on Rails for beginners
Vysakh Sreenivasan
Ruby on Rails Presentation
Ruby on Rails Presentation
adamcookeuk
Ruby and Rails by example
Ruby and Rails by example
bryanbibat
CoffeeScript - An Introduction
CoffeeScript - An Introduction
Manvendra Singh
Empfohlen
Extracting ruby gem
Extracting ruby gem
Yura Tolstik
Low-Maintenance Perl
Low-Maintenance Perl
Perrin Harkins
5 Tips for Better JavaScript
5 Tips for Better JavaScript
Todd Anglin
Smalltalk on rubinius
Smalltalk on rubinius
Konstantin Haase
Ruby on Rails for beginners
Ruby on Rails for beginners
Vysakh Sreenivasan
Ruby on Rails Presentation
Ruby on Rails Presentation
adamcookeuk
Ruby and Rails by example
Ruby and Rails by example
bryanbibat
CoffeeScript - An Introduction
CoffeeScript - An Introduction
Manvendra Singh
(Parameterized) Roles
(Parameterized) Roles
sartak
P6 OO vs Moose (&Moo)
P6 OO vs Moose (&Moo)
lichtkind
App Lego
App Lego
László Bácsi
node ffi
node ffi
偉格 高
Screen Scraping with Ruby
Screen Scraping with Ruby
jeremyraines
Javascript status 2016
Javascript status 2016
Arshavski Alexander
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger
A tour on ruby and friends
A tour on ruby and friends
旻琦 潘
Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.
Peter Higgins
Flex With Rubyamf
Flex With Rubyamf
Tony Hillerson
Node.js for PHP developers
Node.js for PHP developers
Andrew Eddie
Why TypeScript?
Why TypeScript?
FITC
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
Brian LeRoux
Ruby on Rails Presentation
Ruby on Rails Presentation
Michael MacDonald
Class
Class
mussawir20
Introducing Ruby
Introducing Ruby
James Thompson
Introduction to CoffeeScript
Introduction to CoffeeScript
Stalin Thangaraj
Mojolicious
Mojolicious
Marcos Rebelo
Domain Specific Languages In Scala Duse3
Domain Specific Languages In Scala Duse3
Peter Maas
From Java To Clojure (English version)
From Java To Clojure (English version)
Kent Ohashi
Microsoft Hellas Dev Days 09: IronRuby
Microsoft Hellas Dev Days 09: IronRuby
Nikos Dimitrakopoulos
Hungry planet
Hungry planet
loups56
Weitere ähnliche Inhalte
Was ist angesagt?
(Parameterized) Roles
(Parameterized) Roles
sartak
P6 OO vs Moose (&Moo)
P6 OO vs Moose (&Moo)
lichtkind
App Lego
App Lego
László Bácsi
node ffi
node ffi
偉格 高
Screen Scraping with Ruby
Screen Scraping with Ruby
jeremyraines
Javascript status 2016
Javascript status 2016
Arshavski Alexander
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger
A tour on ruby and friends
A tour on ruby and friends
旻琦 潘
Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.
Peter Higgins
Flex With Rubyamf
Flex With Rubyamf
Tony Hillerson
Node.js for PHP developers
Node.js for PHP developers
Andrew Eddie
Why TypeScript?
Why TypeScript?
FITC
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
Brian LeRoux
Ruby on Rails Presentation
Ruby on Rails Presentation
Michael MacDonald
Class
Class
mussawir20
Introducing Ruby
Introducing Ruby
James Thompson
Introduction to CoffeeScript
Introduction to CoffeeScript
Stalin Thangaraj
Mojolicious
Mojolicious
Marcos Rebelo
Domain Specific Languages In Scala Duse3
Domain Specific Languages In Scala Duse3
Peter Maas
From Java To Clojure (English version)
From Java To Clojure (English version)
Kent Ohashi
Was ist angesagt?
(20)
(Parameterized) Roles
(Parameterized) Roles
P6 OO vs Moose (&Moo)
P6 OO vs Moose (&Moo)
App Lego
App Lego
node ffi
node ffi
Screen Scraping with Ruby
Screen Scraping with Ruby
Javascript status 2016
Javascript status 2016
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011
A tour on ruby and friends
A tour on ruby and friends
Your Library Sucks, and why you should use it.
Your Library Sucks, and why you should use it.
Flex With Rubyamf
Flex With Rubyamf
Node.js for PHP developers
Node.js for PHP developers
Why TypeScript?
Why TypeScript?
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
Ruby on Rails Presentation
Ruby on Rails Presentation
Class
Class
Introducing Ruby
Introducing Ruby
Introduction to CoffeeScript
Introduction to CoffeeScript
Mojolicious
Mojolicious
Domain Specific Languages In Scala Duse3
Domain Specific Languages In Scala Duse3
From Java To Clojure (English version)
From Java To Clojure (English version)
Andere mochten auch
Microsoft Hellas Dev Days 09: IronRuby
Microsoft Hellas Dev Days 09: IronRuby
Nikos Dimitrakopoulos
Hungry planet
Hungry planet
loups56
Things Learned From Rails
Things Learned From Rails
Nikos Dimitrakopoulos
Athens Ruby Meetup #3: IronRuby
Athens Ruby Meetup #3: IronRuby
Nikos Dimitrakopoulos
Cali Grandit
Cali Grandit
loups56
(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies
squid
RECONÓCETE (R.B.G.)
RECONÓCETE (R.B.G.)
RBG
Andere mochten auch
(7)
Microsoft Hellas Dev Days 09: IronRuby
Microsoft Hellas Dev Days 09: IronRuby
Hungry planet
Hungry planet
Things Learned From Rails
Things Learned From Rails
Athens Ruby Meetup #3: IronRuby
Athens Ruby Meetup #3: IronRuby
Cali Grandit
Cali Grandit
(NOW 3.0) MMORPG Architecture for dummies
(NOW 3.0) MMORPG Architecture for dummies
RECONÓCETE (R.B.G.)
RECONÓCETE (R.B.G.)
Ähnlich wie A Blink Into The Rails Magic
wwc start-launched
wwc start-launched
Mat Schaffer
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
JAX London
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
Nick Sieger
RoR 101: Session 2
RoR 101: Session 2
Rory Gianni
Supa fast Ruby + Rails
Supa fast Ruby + Rails
Jean-Baptiste Feldis
Sprockets
Sprockets
Christophe Porteneuve
Ruby On Rails Intro
Ruby On Rails Intro
Sarah Allen
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Nick Sieger
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortega
arman o
Using Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 Flow
Karsten Dambekalns
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
ThoughtWorks
Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
Hermann Hueck
Clojutre Real Life (2012 ClojuTRE Retro Edition)
Clojutre Real Life (2012 ClojuTRE Retro Edition)
Metosin Oy
Intro To Node.js
Intro To Node.js
Chris Cowan
Dev8d Apache Solr Tutorial
Dev8d Apache Solr Tutorial
Sourcesense
PTW Rails Bootcamp
PTW Rails Bootcamp
Mat Schaffer
Solid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
scalaconfjp
Solid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
Kazuhiro Sera
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
Lucidworks
CoffeeScript Design Patterns
CoffeeScript Design Patterns
TrevorBurnham
Ähnlich wie A Blink Into The Rails Magic
(20)
wwc start-launched
wwc start-launched
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
Architecture | Busy Java Developers Guide to NoSQL | Ted Neward
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
RoR 101: Session 2
RoR 101: Session 2
Supa fast Ruby + Rails
Supa fast Ruby + Rails
Sprockets
Sprockets
Ruby On Rails Intro
Ruby On Rails Intro
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortega
Using Document Databases with TYPO3 Flow
Using Document Databases with TYPO3 Flow
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
Reactive Access to MongoDB from Scala
Reactive Access to MongoDB from Scala
Clojutre Real Life (2012 ClojuTRE Retro Edition)
Clojutre Real Life (2012 ClojuTRE Retro Edition)
Intro To Node.js
Intro To Node.js
Dev8d Apache Solr Tutorial
Dev8d Apache Solr Tutorial
PTW Rails Bootcamp
PTW Rails Bootcamp
Solid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
Solid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
Rebuilding Solr 6 Examples - Layer by Layer: Presented by Alexandre Rafalovit...
CoffeeScript Design Patterns
CoffeeScript Design Patterns
Kürzlich hochgeladen
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
gurkirankumar98700
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Pooja Nehwal
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Kürzlich hochgeladen
(20)
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
A Blink Into The Rails Magic
1.
A blink into
the “rails magic” The meta-programming in Rails / Rails as a code generator
2.
Some rights reserved
Nikos Dimitrakopoulos, 2009 http://blog.nikosd.com
3.
The “classic” rails
ingredients MVC DRY COC …
4.
Not for today…
MVC DRY COC …
5.
Rails as a
code generator
6.
PART I :
100% Static
7.
The directory structure
8.
Models + Tests
9.
Controllers / views
+ tests
10.
Resources (the whole
set)
11.
Even with *implemented*
views & controllers (a.k.a. “scaffolds”)
12.
13.
14.
15.
16.
17.
Static(*) API
18.
19.
20.
Nothing special so
far…
21.
PART II :
100% On-the-fly
22.
This is where
the actual fun begins!
23.
Some basic stuff:
ORM
24.
25.
26.
27.
How does Rails
map the attributes???
28.
29.
30.
The truth is
in the source…
31.
32.
33.
34.
35.
36.
A blink into
the “magic”
37.
38.
if we haven’t
already generated the “dynamic” methods
39.
40.
41.
42.
for each column
on the db table :
43.
44.
45.
46.
47.
PART III :
Magic happens Everywhere
48.
On the routes
/ Controllers
49.
50.
51.
52.
53.
54.
55.
+ 3 more
by default
56.
+ 3 more
by default More info on “resources” : http://api.rubyonrails.org/classes/ActionController/Resources.html
57.
On the ORM
/ Models
58.
Dynamic finders
59.
Dynamic finders
60.
As said this
is just a “blink”
61.
62.
ActiveRecordnamed_scopes
63.
ActionControllerroutes
64.
ActionControllerrendering
65.
ActionControllerformat
66.
67.
68.
69.
Domain-aware code
70.
71.
Domain-aware code
72.
Out of the
box
73.
74.
Domain-aware code
75.
Out of the
box
76.
Every time
77.
78.
Compare it with
Java or .Net “enterprise” solutions… © Rubyrags.com
79.
Implement your own!!!
80.
Implement your own!!!
(Jim will give you a hint tomorrow at the Ruby Meetup)
81.
Thanks for your
time
82.
Thanks for your
time And welcome to themagic world of Rubyand Ruby on Rails
Jetzt herunterladen