0
How not to develop with Plone
Lennart Regebro, Colliberty
Plone Conference 2010, Bristol
How not to develop with Plone
(A rant)
Lennart Regebro, Colliberty
Plone Conference 2010, Bristol
Don't do your own scaffolding!
Use paster
Paster
$ easy_install ZopeSkel
$ paster create --list-templates
$ paster create -t plone3_theme
$ paster create -t archety...
Plone buildouts beware!
● No Plone 4 support (yet)
● But plone_hosting template has some utilities:
● ZEO Server + Client
...
Everything else beware!
The module name must have
the correct number of dots!
ZopeSkel#basic_namespace: One dot
ZopeSkel#n...
Local commands
$ paster addcontent --list-all
$ paster addcontent contenttype
$ paster addcontent portlet
$ paster addcont...
Clean up!
ExampleTypeSchema['title'].storage = atapi.AnnotationStorage()
ExampleTypeSchema['description'].storage = atapi....
Don't use doctests
Don't use doctests
Unless you are testing documentation
Don't reinstall to make updates
Make upgrade steps
Don't host the project yourself
Use the collective svn
Upload to the Cheese Shop
Don't use trunk
Don't assume so much
Don't require so much
Don't be so monolithic
Don't overuse components
Don't fight the framework
Don't use content types
For things that are not content
Don't use ZTK
when it conflicts with The Plone Way
Don't use CMF
To do things you can do without it
zope.event
subscribers = []
def notify(event):
for subscriber in subscribers:
subscriber(event)
blog.star
blog.star
collective.blog.view
collective.blog.feeds
collective.blog.portlets
collective.blog.star
Photo credits
Half scaffolding - istolethetv
Toothmato paste - Scott Feldstein
Eye Tests - State Records New South Wales
U...
Thank you
Lennart Regebro
regebro@gmail.com
http://regebro.wordpress.com/
Upcoming SlideShare
Loading in...5
×

How not to develop with Plone

2,278

Published on

A talk about common mistakes in Plone development. Video is available on blip.tv as well. http://ploneconference2010.blip.tv/file/4304533/

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,278
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "How not to develop with Plone"

  1. 1. How not to develop with Plone Lennart Regebro, Colliberty Plone Conference 2010, Bristol
  2. 2. How not to develop with Plone (A rant) Lennart Regebro, Colliberty Plone Conference 2010, Bristol
  3. 3. Don't do your own scaffolding!
  4. 4. Use paster
  5. 5. Paster $ easy_install ZopeSkel $ paster create --list-templates $ paster create -t plone3_theme $ paster create -t archetype $ paster create -t basic_namespace
  6. 6. Plone buildouts beware! ● No Plone 4 support (yet) ● But plone_hosting template has some utilities: ● ZEO Server + Client ● zopepy ● logrotate ● supervisor
  7. 7. Everything else beware! The module name must have the correct number of dots! ZopeSkel#basic_namespace: One dot ZopeSkel#nested_namespace: Two dots
  8. 8. Local commands $ paster addcontent --list-all $ paster addcontent contenttype $ paster addcontent portlet $ paster addcontent view
  9. 9. Clean up! ExampleTypeSchema['title'].storage = atapi.AnnotationStorage() ExampleTypeSchema['description'].storage = atapi.AnnotationStorage() ... class ExampleType(base.ATCTContent): ... title = atapi.ATFieldProperty('title') description = atapi.ATFieldProperty('description')
  10. 10. Don't use doctests
  11. 11. Don't use doctests Unless you are testing documentation
  12. 12. Don't reinstall to make updates Make upgrade steps
  13. 13. Don't host the project yourself Use the collective svn Upload to the Cheese Shop
  14. 14. Don't use trunk
  15. 15. Don't assume so much
  16. 16. Don't require so much
  17. 17. Don't be so monolithic
  18. 18. Don't overuse components
  19. 19. Don't fight the framework
  20. 20. Don't use content types For things that are not content
  21. 21. Don't use ZTK when it conflicts with The Plone Way
  22. 22. Don't use CMF To do things you can do without it
  23. 23. zope.event subscribers = [] def notify(event): for subscriber in subscribers: subscriber(event)
  24. 24. blog.star
  25. 25. blog.star collective.blog.view collective.blog.feeds collective.blog.portlets collective.blog.star
  26. 26. Photo credits Half scaffolding - istolethetv Toothmato paste - Scott Feldstein Eye Tests - State Records New South Wales Unloved Wicker Trunk – Fredo Alvarez Thinking... Please wait - Karola Riegler Ass Required - vhhammer Effort - Kris Bradley MeccanoStyrofoam – Conor Lawless 155/365 Infinite Regression (fractal) - Stuart Pilbrow underneath a star – Jeremy Villasis
  27. 27. Thank you Lennart Regebro regebro@gmail.com http://regebro.wordpress.com/
  1. A particular slide catching your eye?

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

×