Web development is a complexity challenge nowadays. Growing number of functionalities results in customer expectations increase which makes project design more difficult. Using proper tools that suite your customer needs is essential.
This talk is about successful story using closely together Pyramid and Plone. Basing on these examples you will see the main reasons for using Plone as a CMS only and letting Pyramid do the rest (vertical application).
5. My Reasons to be here
★ Building complex web
applications could be fun
★ Architectural decisions are
more important than you
think
★ Promote
and
6. ★ among the top 2% of all open source projects worldwide
★ more than 340 active core developers
★ developed since 2001
★ version 4.1 released 12 days ago
7.
8. ★ available in more than 40 languages
★ the best security track record of any major CMS
15. SMALL “Roughly 5000 lines
of code”
FAST
STABLE
16. SMALL “Roughly 5000 lines
of code”
FAST
“100% statement
STABLE
coverage via unit and
TESTED integration tests”
17. SMALL “Roughly 5000 lines
of code”
FAST
“100% statement
STABLE
coverage via unit and
TESTED integration tests”
DOCUMENTED “Literally nothing
in Pyramid
is undocumented”
21. Th e T eam
★ Mixed roles:
Software
architect
Project
Tester manager
Developer
★ No development philosophy
22. t ec h no lo g y
★ Temptation to be on the
technological edge
★ The Learning Curve Effect
everything is a “prototype”
★ Technical design debt is...
... more then average
23. bad deci si ons
★ Project manager as
Software architect as
Tester
★ Technology didn't
fit in
★
no fun at all
25. The Customer
★ .
★ Born as a startup
★ Offices in Miami,
New York and Los Angeles
26. Water today
★ U.S. - the largest consumer market for
bottled water in the world
★ in 2011, the market is forecast to have a
value of $86,421.2 billion
“Bottled water has become the second
largest commercial beverage category”
42. project gotchas
★ Requirements are not rock
solid
(it’s a startup) - project will grow with
the customer
★ Customer is in U.S. - planning
regular meetings is essential
★ We need to find proper (new?)
framework
★ Only 5 months to delivery
48. why ?
★ architecture is not so far away
from Zope
★ it supports SQLAlchemy out
of the box
★ great documentation and
active community
★ add’s some fresh air to your
architecture
49. why ?
★ Pyramid CRUD
★ Multi-upload widget
★ Metric units widget
★ Autocomplete widget
★ Multi-relation widget
★ ... and more
★ 75% jQuery code
50. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
51. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
52. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
53. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
54. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
55. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
56. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
57. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
58. why ?
★ The Best CMS
★ Enterprise ready
★ 1595 addons (and counting...)
on plone.org/products
★ PloneFormGen
★ Poi
★ Diazo
★ LinguaPlone
66. d j ang o : no!
★ less code more magic
★ not so flexible
(specification is growing)
★ using SQLAlchemy
could be tricky
67. d r u pal: no!
★ security problems
(370 CVE entries)
★ integration is more
difficult
(PHP vs. Python)
★ missing features -
workflow, complex ACL, etc.
68. o pen erp : hmm
★ quite complex: CRM , sales,
accounting and much more
★ not enough time
to fully investigate it
73. Pyramid CRUD
★ started from Sergey Volobuev
Kelpie (repoze.bfg crud prototype)
★ using SQLAlchemy, Formalchemy
and fa.jquery
★ known as pyramid_formalchemy
74. Sprint summary
★ what is accomplished:
★ events hooks
★ view and action customizations
★ i18n support
★ autocomplete widget
★ paster templates
★ plans:
★ fanstatic integration