23
Merb, Le framework tellement bien qu’il sera int´ egr´ e dans Rails Merb, Le framework tellement bien qu’il sera int´ egr´ e dans Rails Cyril Mougel 07 Mars 2009

Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Embed Size (px)

DESCRIPTION

Présentation du framework web Merb

Citation preview

Page 1: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Merb, Le framework tellement bien qu’il seraintegre dans Rails

Cyril Mougel

07 Mars 2009

Page 2: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Merb, c’est quoi ?

1 Merb, c’est quoi ?

2 Les concepts de Merb

3 Les differentes partie de Merb

4 En pratique ?

Page 3: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Merb, c’est quoi ?

Un coquille vide ?

Non, car utilise dans plein de projet

Non, car sinon il ne serait pas merge dans Rails

Non, car il a entraine des flameware comme Vim/Emacs

Non, car la majeur partie des Merbistes sont des Railers

Page 4: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Merb, c’est quoi ?

C’est partie comment ?

”Start has a hack”

http ://pastie.org/14416

Ezmobius et Wycats

”No code is faster than no code”

Page 5: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les concepts de Merb

1 Merb, c’est quoi ?

2 Les concepts de Merb

3 Les differentes partie de Merb

4 En pratique ?

Page 6: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les concepts de Merb

La difference par rapport a Ruby On Rails ?

ORM Agnostic

Javascript Agnostic

Modulaire

API Public

Page 7: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les concepts de Merb

Les points communs avec Ruby On Rails

MVC

View Agnostic

Rack based (nouveau chez Rails 2.2)

Thread safe (nouveau chez Rails 2.2)

Page 8: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les differentes partie de Merb

1 Merb, c’est quoi ?

2 Les concepts de Merb

3 Les differentes partie de Merb

4 En pratique ?

Page 9: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les differentes partie de Merb

Merb-core

equivalent a ActionPack mais en light

Routing, Rack, Bootloader, Controller

Page 10: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les differentes partie de Merb

Merb-more

Le reste d’ActionPack

Des gems pratiques pour certaine options (merb-mailer,merb-cache, merb-action-args)

Utile, mais non critique

Page 11: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

Les differentes partie de Merb

Merb-plugins

Maintenu par le Merb Core Team

Les gems de communication avec les differentes briques(merb-sequel, merb-datamapper, merb-activerecord, etc...)

Non essentiel

Page 12: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

1 Merb, c’est quoi ?

2 Les concepts de Merb

3 Les differentes partie de Merb

4 En pratique ?

Page 13: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Render - Display - provides

On affiche une vue (Render)

On rend une resource (Display)

On fournit des formats (provides)

Page 14: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Render

Un exemple de controller utilisant render :

1 c l a s s Widgets < A p p l i c a t i o n2 def l i c e n c e3 r e n d e r4 end56 def manual7 @manual = . . .8 r e n d e r @manual9 end

10 end

Page 15: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Display

Un exemple de controller utilisant Display :

1 C l a s s U s e r s < A p p l i c a t i o n23 p r o v i d e s : xml , : j s o n , : yaml45 # Appel l a vue demande par l a r e qu e t e s u i v a n t6 # ce qu i e s t f o u r n i ( p r o v i d e s )7 # : xml , : j son , : yaml8 def show9 @user = User . g e t ( params [ : i d ] )

10 d i s p l a y @user11 end1213 # re cup e r e /app/ v iew / u s e r s / i ndex . ( html | xml | j s o n | yaml ) . haml14 def i n d e x15 @ u s e r s = User . a l l16 d i s p l a y @ u s e r s17 end1819 end

Page 16: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

merb-action-args

Des parametres sur les actions ?

Simplifie les controllers

Base sur ParseTree

Page 17: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Sans1 c l a s s U s e r s < A p p l i c a t i o n2 def show3 @user = User . g e t ( params [ : i d ] )4 d i s p l a y @user5 end67 def i n d e x8 @ u s e r s = User . p a g i n a t e ( params [ : page ] ,9 params [ : p e r p a g e ] )

10 d i s p l a y @ u s e r s11 end1213 end

Avec1 c l a s s U s e r s < A p p l i c a t i o n2 def show ( i d )3 @user = User . g e t ( i d )4 d i s p l a y @user5 end67 def i n d e x ( page =1, p e r p a g e =10)8 @ u s e r s = User . p a g i n a t e ( page ,9 p e r p a g e )

10 d i s p l a y @ u s e r s11 end1213 end

Page 18: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Les routeurs

Resources ( resources :articles )

Tres lisible ( match(”/about”).to( :controller =¿”main”, :action =¿ ”about”).name( :about) )

url( :about)

Page 19: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

merb-slice

Inspire des app de Django

Une sorte de mini application Merb

On y defini :

Ses routesSes controllers dans un namespaceSes modeles

router.rb : slice( :merb static pages slice, :path =¿ ”static”)

merb-auth la slice d’authentification

Page 20: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

merb-cache

Une seule methode : cache

On invalid le cache avec eager cache

Pas differente methode, juste differente option

Page 21: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

1 c l a s s P o s t s < A p p l i c a t i o n23 a f t e r : c l e a r f r a g m e n t c a c h e , : o n l y => [ : c r e a t e ]45 cache : show6 cache : index , : s t o r e => : a c t i o n s t o r e7 e a g e r c a c h e : c r e a t e , : i n d e x89 def i n d e x

10 @posts = Post . a l l11 r e n d e r12 end1314 def show15 @post = Post . f i r s t ( : i d => params [ : i d ] )16 r e n d e r17 end1819 def c r e a t e20 . . .21 end2223 p r i v a t e2425 def c l e a r f r a g m e n t c a c h e26 Merb : : Cache [ : memcached ] . d e l e t e ( ” custom key ” )27 end2829 end

Page 22: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

Les resources ?

http ://wiki.merbivore.org

http ://merbivore.org/documentation.html

http ://merbunity.com/

Page 23: Merb Le Framework Tellement Bien Qu Il Sera Integré Dans Rails

Merb, Le framework tellement bien qu’il sera integre dans Rails

En pratique ?

questions ?