SlideShare une entreprise Scribd logo
1  sur  18
Bonjour
Rails 3
Rack à tous les étages


• Merci WSGI
Rack à tous les étages

• sessions
• cookies
• cache
• redirections (à la place d'Apache)
• tout se qui est avant le controlleur.
Rack à tous les étages


• incorporer des applications dans des
  applications
Rack à tous les étages


• brancher son appli principale sur le serveur
  web
MVC-REST-Ressources


• Une application rigoureuse des principes et
  du vocabulaire MVC
MVC-REST-Ressources
• Le Modele gère la couche métier : ORM,
  validations, callbacks, sérialisation, états,
  i18n, …
• Le Controlleur expose l'API de
  l'application et pilote les Vues.
• Les Vues fait le rendu des ressources
  appelées, dans le format demandé
MVC-REST-Ressources

• On appelle une ressource générique (liste)
  ou spécifique (par un ID)
• avec un verbe HTTP (CRUD)
• les données sont transmises dans une
  variété de formats (HTML, JSON, XML, …)
MVC-REST-Ressources


• Le Routage est totalement orienté
  Ressources
• La table de routage est limpide
configuration
          conventions

• Il y a le cas de 80-90% des usages, pour ça il
  n'y a rien à faire
• pour les autres, on configure.
Don’t Repeat Yourself

• On évite de coder, définir, … quelque
  choses plusieurs fois
• implémentations plus simples, plus faciles à
  maintenir, à tester, …
Interface avec la BDD

• pas de définition du schéma dans la config
• l'ORM le devine en regardant les tables
• par défaut les modèles sont vides : pas de
  getter/setter
Agnostique


• ORM, JS, templates, tests, …
• Railtie fait la glue autour de tout ça
Interface /
     implémentations

• Interfaces unifiées stable
• Une implémentation activée par défaut
• exemple : ActiveModel et ActiveRecord
Autres pépites

• bundler : dépendances
• multi-environnements, extensibles
• console (basée sur IRB)
•…
/me

• jeremy.wordpress.com
• @jlecour
• github.com/jlecour
•
2 points de départ

• 1 blog en 15 minutes avec Rails 3
 • www.railsdispatch.com
• Mon article pour commencer Ruby et Rails
 • http://jeremy.wordpress.com/2009/11/13/
    monter-dans-le-train-de-ruby-et-rails/

Contenu connexe

Tendances

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
Les Promises en Javascript
Les Promises en JavascriptLes Promises en Javascript
Les Promises en JavascriptBenoit Zohar
 
EventMachine
EventMachineEventMachine
EventMachineLeTesteur
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
Introduction Erlang - altnet fr Juin 2013
Introduction Erlang - altnet fr Juin 2013Introduction Erlang - altnet fr Juin 2013
Introduction Erlang - altnet fr Juin 2013Yann Schwartz
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
Migrations PHP 5 - Solutions linux 2009
Migrations PHP 5 - Solutions linux 2009Migrations PHP 5 - Solutions linux 2009
Migrations PHP 5 - Solutions linux 2009Eric D.
 
Hacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsHacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsCertilience
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScripttarkan_
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs13p
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leunautilebleu
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node jsHoracio Gonzalez
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceVaisonet
 

Tendances (20)

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Angular retro
Angular retroAngular retro
Angular retro
 
Les Promises en Javascript
Les Promises en JavascriptLes Promises en Javascript
Les Promises en Javascript
 
EventMachine
EventMachineEventMachine
EventMachine
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Introduction Erlang - altnet fr Juin 2013
Introduction Erlang - altnet fr Juin 2013Introduction Erlang - altnet fr Juin 2013
Introduction Erlang - altnet fr Juin 2013
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Migrations PHP 5 - Solutions linux 2009
Migrations PHP 5 - Solutions linux 2009Migrations PHP 5 - Solutions linux 2009
Migrations PHP 5 - Solutions linux 2009
 
Hacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisationsHacking Open source et Sécurité, préconisations
Hacking Open source et Sécurité, préconisations
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScript
 
Systematic, toolchain JS
Systematic, toolchain JSSystematic, toolchain JS
Systematic, toolchain JS
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
A la queue leu leu
A la queue leu leuA la queue leu leu
A la queue leu leu
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerceWordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
WordCamp Lille 2018 : Comprendre et utiliser l'API REST de WooCommerce
 
Quoi d'9, JAVA 9 ?
Quoi d'9, JAVA 9 ?Quoi d'9, JAVA 9 ?
Quoi d'9, JAVA 9 ?
 
Pimp your css
Pimp your cssPimp your css
Pimp your css
 

En vedette

Examples_projects
Examples_projectsExamples_projects
Examples_projectsambabhavani
 
Grand m pronom compl en
Grand m pronom compl enGrand m pronom compl en
Grand m pronom compl enÉric Rivest
 
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine Katlama
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine KatlamaCasablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine Katlama
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine KatlamaVih.org
 
Presentation CADIQ
Presentation CADIQPresentation CADIQ
Presentation CADIQCAD Interop
 
Tutorial slidesharegrupo25.pdf
Tutorial slidesharegrupo25.pdfTutorial slidesharegrupo25.pdf
Tutorial slidesharegrupo25.pdfSURIDF
 
administración
administraciónadministración
administraciónpatrcia19
 
10R - Frédéric Haeuw : ne dites pas à mon patron...
10R - Frédéric Haeuw : ne dites pas à mon patron...10R - Frédéric Haeuw : ne dites pas à mon patron...
10R - Frédéric Haeuw : ne dites pas à mon patron...FFFOD
 
Wsiteam businesscase-llc-et-associes
Wsiteam businesscase-llc-et-associesWsiteam businesscase-llc-et-associes
Wsiteam businesscase-llc-et-associesWSI France
 
SRFC / Metz : Le programme de match
SRFC / Metz : Le programme de matchSRFC / Metz : Le programme de match
SRFC / Metz : Le programme de matchstaderennais
 

En vedette (20)

Examples_projects
Examples_projectsExamples_projects
Examples_projects
 
Petit clin d'oeil.
Petit clin d'oeil.Petit clin d'oeil.
Petit clin d'oeil.
 
Grand m pronom compl en
Grand m pronom compl enGrand m pronom compl en
Grand m pronom compl en
 
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine Katlama
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine KatlamaCasablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine Katlama
Casablanca 2010 - VIH: Nouvelles stratégies thérapeutiques - Christine Katlama
 
Vuelo en uno
Vuelo en unoVuelo en uno
Vuelo en uno
 
Smite
SmiteSmite
Smite
 
Ada 3
Ada 3 Ada 3
Ada 3
 
Presentation CADIQ
Presentation CADIQPresentation CADIQ
Presentation CADIQ
 
Computer Quiz
Computer QuizComputer Quiz
Computer Quiz
 
Pwp part 3
Pwp part 3Pwp part 3
Pwp part 3
 
Grand m pouvoir
Grand m pouvoirGrand m pouvoir
Grand m pouvoir
 
Gazette 7 Du 26 Mai Au 2 Juillet 2009
Gazette 7 Du 26 Mai Au 2 Juillet 2009Gazette 7 Du 26 Mai Au 2 Juillet 2009
Gazette 7 Du 26 Mai Au 2 Juillet 2009
 
Tutorial slidesharegrupo25.pdf
Tutorial slidesharegrupo25.pdfTutorial slidesharegrupo25.pdf
Tutorial slidesharegrupo25.pdf
 
administración
administraciónadministración
administración
 
Flor maria oña
Flor maria oñaFlor maria oña
Flor maria oña
 
Dia de la madre JA
Dia de la madre JADia de la madre JA
Dia de la madre JA
 
10R - Frédéric Haeuw : ne dites pas à mon patron...
10R - Frédéric Haeuw : ne dites pas à mon patron...10R - Frédéric Haeuw : ne dites pas à mon patron...
10R - Frédéric Haeuw : ne dites pas à mon patron...
 
Wsiteam businesscase-llc-et-associes
Wsiteam businesscase-llc-et-associesWsiteam businesscase-llc-et-associes
Wsiteam businesscase-llc-et-associes
 
Presentación1
Presentación1Presentación1
Presentación1
 
SRFC / Metz : Le programme de match
SRFC / Metz : Le programme de matchSRFC / Metz : Le programme de match
SRFC / Metz : Le programme de match
 

Similaire à Rails 3 au Djangocong

Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing systemLeClubQualiteLogicielle
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Olivier Gutknecht
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerJulien Chable
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Restful, really ? MixIt 2014
Restful, really ? MixIt 2014Restful, really ? MixIt 2014
Restful, really ? MixIt 2014Xavier Carpentier
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructurecontinuousphp
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm
 

Similaire à Rails 3 au Djangocong (20)

Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et Docker
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Restful, really ? MixIt 2014
Restful, really ? MixIt 2014Restful, really ? MixIt 2014
Restful, really ? MixIt 2014
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructure
 
Codons notre infrastructure
Codons notre infrastructureCodons notre infrastructure
Codons notre infrastructure
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
YaJUG - Spring 3.0
YaJUG - Spring 3.0YaJUG - Spring 3.0
YaJUG - Spring 3.0
 

Rails 3 au Djangocong

  • 3. Rack à tous les étages • Merci WSGI
  • 4. Rack à tous les étages • sessions • cookies • cache • redirections (à la place d'Apache) • tout se qui est avant le controlleur.
  • 5. Rack à tous les étages • incorporer des applications dans des applications
  • 6. Rack à tous les étages • brancher son appli principale sur le serveur web
  • 7. MVC-REST-Ressources • Une application rigoureuse des principes et du vocabulaire MVC
  • 8. MVC-REST-Ressources • Le Modele gère la couche métier : ORM, validations, callbacks, sérialisation, états, i18n, … • Le Controlleur expose l'API de l'application et pilote les Vues. • Les Vues fait le rendu des ressources appelées, dans le format demandé
  • 9. MVC-REST-Ressources • On appelle une ressource générique (liste) ou spécifique (par un ID) • avec un verbe HTTP (CRUD) • les données sont transmises dans une variété de formats (HTML, JSON, XML, …)
  • 10. MVC-REST-Ressources • Le Routage est totalement orienté Ressources • La table de routage est limpide
  • 11. configuration conventions • Il y a le cas de 80-90% des usages, pour ça il n'y a rien à faire • pour les autres, on configure.
  • 12. Don’t Repeat Yourself • On évite de coder, définir, … quelque choses plusieurs fois • implémentations plus simples, plus faciles à maintenir, à tester, …
  • 13. Interface avec la BDD • pas de définition du schéma dans la config • l'ORM le devine en regardant les tables • par défaut les modèles sont vides : pas de getter/setter
  • 14. Agnostique • ORM, JS, templates, tests, … • Railtie fait la glue autour de tout ça
  • 15. Interface / implémentations • Interfaces unifiées stable • Une implémentation activée par défaut • exemple : ActiveModel et ActiveRecord
  • 16. Autres pépites • bundler : dépendances • multi-environnements, extensibles • console (basée sur IRB) •…
  • 18. 2 points de départ • 1 blog en 15 minutes avec Rails 3 • www.railsdispatch.com • Mon article pour commencer Ruby et Rails • http://jeremy.wordpress.com/2009/11/13/ monter-dans-le-train-de-ruby-et-rails/

Notes de l'éditeur