• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

How not to develop with Plone

  • 2,198 views
Uploaded 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/

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,198
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
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/