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.

Like this presentation? Why not share!

How not to develop with Plone

on

  • 2,551 views

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/

Statistics

Views

Total Views
2,551
Views on SlideShare
2,548
Embed Views
3

Actions

Likes
2
Downloads
15
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

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

How not to develop with Plone How not to develop with Plone Presentation Transcript

  • 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 archetype $ paster create -t basic_namespace
  • Plone buildouts beware! ● No Plone 4 support (yet) ● But plone_hosting template has some utilities: ● ZEO Server + Client ● zopepy ● logrotate ● supervisor
  • Everything else beware! The module name must have the correct number of dots! ZopeSkel#basic_namespace: One dot ZopeSkel#nested_namespace: Two dots
  • Local commands $ paster addcontent --list-all $ paster addcontent contenttype $ paster addcontent portlet $ paster addcontent view
  • Clean up! ExampleTypeSchema['title'].storage = atapi.AnnotationStorage() ExampleTypeSchema['description'].storage = atapi.AnnotationStorage() ... class ExampleType(base.ATCTContent): ... title = atapi.ATFieldProperty('title') description = atapi.ATFieldProperty('description')
  • 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 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
  • Thank you Lennart Regebro regebro@gmail.com http://regebro.wordpress.com/