Approaching unknown unknowns: CMF for the masses
Upcoming SlideShare
Loading in...5
×
 

Approaching unknown unknowns: CMF for the masses

on

  • 1,318 views

A brief informal presentation about CMF design at the Rome PHP User Group.

A brief informal presentation about CMF design at the Rome PHP User Group.

Statistics

Views

Total Views
1,318
Views on SlideShare
1,006
Embed Views
312

Actions

Likes
1
Downloads
6
Comments
0

5 Embeds 312

http://roma.grusp.org 210
http://www.odino.org 97
http://odino.org 3
http://www.sfexception.com 1
http://94.141.20.55 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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

    Approaching unknown unknowns: CMF for the masses Approaching unknown unknowns: CMF for the masses Presentation Transcript

    • Approaching unknown unknowns - CMF for the masses -
    • The problem™
    • The problem™ Too much work
    • The problem™ Too much workThe solution™
    • The problem™ Too much workThe solution™ Work less
    •  Be  lazy
    • Dont reinvent the wheel
    • Technologic stack: php mysql apache symfony 1.4
    • Why not Symfony2?
    • Why not Symfony2? Sf2 is not ready for production.
    • We are
    • N customers express theirselves in one way: The Web
    • So you need a tool toexpress N domains into theweb. That is called CMF.
    • How do the CMFand the customer domain (DSL) talk?
    • How does the CMF is bound with the DSL?There is a hierarchycal Tree.Containing N Pages.Pages use nested sets.Every page containing N Boxes.Each box containing its Content.
    • How does the CMF is bound with the DSL?Dependency inversion:the CMF doesnt knowanything about the DSL
    • How does the CMF is bound with the DSL?Each box has a content:the content is an instance ofConcreteBox
    • The system ispluggable. Permissions are an example:
    • Abstraction overabstraction overabstraction overabstraction over abstraction....
    • So our well-dressedCMF will finally looklike...
    • Solution: a spaghetti coder + memcached V2.0 + ANSI C =
    • RedisA fast in-memory key-value storage engine written in ANSI-C.Supports clustering, stores data like PHP arrays, writes to disk. Instead of memcached 2.0 we can call it memcache 100.0
    • F***YEAH!We have NoSQL, were on the edge!
    • MySQL talks to Redis
    • Cross-DBMS transactions
    • Redis is gently asked bythe front-end
    • So this...
    • ...becomes this...
    • F***YEAH!²We use NoSQL, and we have a reason!
    • A few other points:
    • Intensive logging If a transaction fails, we need to know if it has failed due to MySQL or Redis. And then why.
    • REST vs SEO GET /products/1 orGET /products/ferrari-f3000
    • REST vs SEO GET /products/1 or GET /products/ferrari-f3000MIXEM! Still REST, still SEO! GET /products/ferrari-f3000-1
    • Thanks! Alessandro Nadalin odino.org twitter.com/_odino_
    • Last but not least!
    • Credits http://www.flickr.com/photos/whatknot/13198827/sizes/o/in/photostream/ http://www.flickr.com/photos/donnagrayson/195244498/sizes/o/in/photostream/ http://www.flickr.com/photos/sakechaud/4452392482/sizes/o/in/photostream/ http://www.flickr.com/photos/gamergates/3461154165/sizes/o/in/photostream/ http://www.flickr.com/photos/14060551@N06/3050235141/sizes/l/in/photostream/http://www.flickr.com/photos/33246833@N00/4353212216/sizes/o/in/photostream/ http://www.flickr.com/photos/jurvetson/36572011/sizes/o/in/photostream/http://www.flickr.com/photos/htcfloorsystems/4008090894/sizes/o/in/photostream/ http://www.flickr.com/photos/mlleglass/491378611/sizes/o/in/photostream/ http://www.flickr.com/photos/rhymereverie/2253533697/sizes/l/in/photostream/ http://www.flickr.com/photos/spunkinator/3050946547/sizes/o/in/photostream/ http://www.flickr.com/photos/725/3524480344/sizes/l/in/photostream/