Your SlideShare is downloading. ×
How not to develop with Plone
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

How not to develop with Plone

2,245
views

Published on

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

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,245
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. How not to develop with Plone Lennart Regebro, Colliberty Plone Conference 2010, Bristol
  • 2. How not to develop with Plone (A rant) Lennart Regebro, Colliberty Plone Conference 2010, Bristol
  • 3. Don't do your own scaffolding!
  • 4. Use paster
  • 5. Paster $ easy_install ZopeSkel $ paster create --list-templates $ paster create -t plone3_theme $ paster create -t archetype $ paster create -t basic_namespace
  • 6. Plone buildouts beware! ● No Plone 4 support (yet) ● But plone_hosting template has some utilities: ● ZEO Server + Client ● zopepy ● logrotate ● supervisor
  • 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. Local commands $ paster addcontent --list-all $ paster addcontent contenttype $ paster addcontent portlet $ paster addcontent view
  • 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. Don't use doctests
  • 11. Don't use doctests Unless you are testing documentation
  • 12. Don't reinstall to make updates Make upgrade steps
  • 13. Don't host the project yourself Use the collective svn Upload to the Cheese Shop
  • 14. Don't use trunk
  • 15. Don't assume so much
  • 16. Don't require so much
  • 17. Don't be so monolithic
  • 18. Don't overuse components
  • 19. Don't fight the framework
  • 20. Don't use content types For things that are not content
  • 21. Don't use ZTK when it conflicts with The Plone Way
  • 22. Don't use CMF To do things you can do without it
  • 23. zope.event subscribers = [] def notify(event): for subscriber in subscribers: subscriber(event)
  • 24. blog.star
  • 25. blog.star collective.blog.view collective.blog.feeds collective.blog.portlets collective.blog.star
  • 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. Thank you Lennart Regebro regebro@gmail.com http://regebro.wordpress.com/