Your SlideShare is downloading. ×
0
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 co...
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 ...
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 S...
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/donnagray...
Approaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the masses
Approaching unknown unknowns: CMF for the masses
Upcoming SlideShare
Loading in...5
×

Approaching unknown unknowns: CMF for the masses

1,418

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,418
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Approaching unknown unknowns: CMF for the masses"

  1. 1. Approaching unknown unknowns - CMF for the masses -
  2. 2. The problem™
  3. 3. The problem™ Too much work
  4. 4. The problem™ Too much workThe solution™
  5. 5. The problem™ Too much workThe solution™ Work less
  6. 6.  Be  lazy
  7. 7. Dont reinvent the wheel
  8. 8. Technologic stack: php mysql apache symfony 1.4
  9. 9. Why not Symfony2?
  10. 10. Why not Symfony2? Sf2 is not ready for production.
  11. 11. We are
  12. 12. N customers express theirselves in one way: The Web
  13. 13. So you need a tool toexpress N domains into theweb. That is called CMF.
  14. 14. How do the CMFand the customer domain (DSL) talk?
  15. 15. 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.
  16. 16. How does the CMF is bound with the DSL?Dependency inversion:the CMF doesnt knowanything about the DSL
  17. 17. How does the CMF is bound with the DSL?Each box has a content:the content is an instance ofConcreteBox
  18. 18. The system ispluggable. Permissions are an example:
  19. 19. Abstraction overabstraction overabstraction overabstraction over abstraction....
  20. 20. So our well-dressedCMF will finally looklike...
  21. 21. Solution: a spaghetti coder + memcached V2.0 + ANSI C =
  22. 22. 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
  23. 23. F***YEAH!We have NoSQL, were on the edge!
  24. 24. MySQL talks to Redis
  25. 25. Cross-DBMS transactions
  26. 26. Redis is gently asked bythe front-end
  27. 27. So this...
  28. 28. ...becomes this...
  29. 29. F***YEAH!²We use NoSQL, and we have a reason!
  30. 30. A few other points:
  31. 31. Intensive logging If a transaction fails, we need to know if it has failed due to MySQL or Redis. And then why.
  32. 32. REST vs SEO GET /products/1 orGET /products/ferrari-f3000
  33. 33. REST vs SEO GET /products/1 or GET /products/ferrari-f3000MIXEM! Still REST, still SEO! GET /products/ferrari-f3000-1
  34. 34. Thanks! Alessandro Nadalin odino.org twitter.com/_odino_
  35. 35. Last but not least!
  36. 36. 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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×