EuroPython 2011 - How to build complex web applications having fun?
Upcoming SlideShare
Loading in...5
×
 

EuroPython 2011 - How to build complex web applications having fun?

on

  • 7,283 views

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 ...

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).

Statistics

Views

Total Views
7,283
Views on SlideShare
7,119
Embed Views
164

Actions

Likes
16
Downloads
299
Comments
4

17 Embeds 164

http://franciscoti.blogspot.com.es 41
http://lanyrd.com 31
http://mariathome-maria.blogspot.com 26
http://mariathome-maria.blogspot.com.br 14
http://www.twylah.com 13
http://n2oautos.blogspot.com 10
http://drogas549.blogspot.com 7
http://www.tboxplanet.com 6
http://blogempollones.blogspot.com.es 5
http://www.slideshare.net 2
http://www.mindtalk.com 2
http://franciscoti.blogspot.com 2
http://www.n2oautos.blogspot.com 1
http://bitly.com 1
http://www.weebly.com 1
http://localhost 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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…
  • 2----MEGA EVENTOS DE FÉRIAS jogando.net/mu/
    Venham conhecer nossos Servidores de Mu
    Online Season 6 e participar dos EVENTOS
    De Férias que preparamos para vocês.
    CONFIRAM = http://www.jogando.net/mu/
    Fazemos sua Diversão com qualidade,há mais de 5 anos
    Servers ON 24 horas por dia.
    Vários Server esperando por você.Venha se divertir de verdade.
    Site http://www.jogando.net/mu/ Benvindos ao nosso servidor.
    HYCLEN Divulgadora Oficial ..Boa semana a todos e boas férias !!!
    Are you sure you want to
    Your message goes here
    Processing…
  • video will be published on europython site http://ep2011.europython.eu/conference/talks/how-to-build-complex-web-applications-having-fun in few days
    Are you sure you want to
    Your message goes here
    Processing…
  • There is a video for this presentation? nice user case
    Are you sure you want to
    Your message goes here
    Processing…
  • Love it. Great summary of the project, fresh looking slides. Congrats to Andy and RedTurtle.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

EuroPython 2011 - How to build complex web applications having fun? EuroPython 2011 - How to build complex web applications having fun? Presentation Transcript

  • How to build complexweb applications having fun?
  • author Andrew Mleczko Software Integrator Ferrara (Italy) twitter: amleczko amleczko@redturtle.it
  • the team
  • WHY this talk?
  • My Reasons to be here★ Building complex web applications could be fun★ Architectural decisions are more important than you think★ Promote and
  • ★ 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
  • ★ available in more than 40 languages★ the best security track record of any major CMS
  • powered
  • the growing community
  • SMALL “Roughly 5000 lines of code”
  • SMALL “Roughly 5000 lines of code”FAST
  • SMALL “Roughly 5000 lines of code”FASTSTABLE
  • SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”
  • SMALL “Roughly 5000 lines of code”FAST “100% statementSTABLE coverage via unit andTESTED integration tests”DOCUMENTED “Literally nothing in Pyramid is undocumented”
  • The Bad story
  • Th e Cus to mer★ Large public sectore entity★ > 1000 employees★ Needs a complex intranet★ Deadline: 2 years
  • T he T eam
  • Th e T eam ★ Mixed roles: Software architect Project Tester manager Developer ★ No development philosophy
  • 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
  • bad deci si ons ★ Project manager as Software architect as Tester ★ Technology didnt fit in ★ no fun at all
  • The Good Story
  • The Customer★ .★ Born as a startup★ Offices in Miami, New York and Los Angeles
  • 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”
  • project requirements
  • paperless sale1 CRM2 Sales3 Warehouse4 E-commerce5 Support
  • paperless sale1 CRM ★ Customer’s management (satisfaction, order status, etc.)2 Sales ★ Reports (machine statistics, etc.)3 Warehouse ★ Campaigns4 E-commerce5 Support
  • paperless sale1 CRM ★ Sales network management ★ Invoicing / accountancy2 Sales ★ Revenue counter3 Warehouse ★ Discount management4 E-commerce5 Support
  • paperless sale1 CRM ★ Catalog management ★ Warehouse management2 Sales ★ Logistic tracking3 Warehouse4 E-commerce5 Support
  • paperless sale1 CRM ★ Online shop (for beverages and accessories)2 Sales ★ Machine configurator (interactive wizard)3 Warehouse ★ Online payments4 E-commerce5 Support
  • paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  • paperless sale1 CRM ★ Machine maintenance (filter change)2 Sales ★ Emergency services ★ Order / installation process3 Warehouse4 E-commerce5 Support
  • paperless sale Warehouse Support CRM E-commerce Sales
  • paperless sale Intranet Extranet Warehouse Support CRM E-commerce Sales
  • Totally paperless ERP
  • project gotchas
  • 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
  • proj ect backg round
  • The DEV TEAM★ Software architect ★ database design ★ integration layer (data, authentication)★ Developers ★ Plone team ★ Pyramid team
  • ★ Prototyping - the good way★ Collecting specification and keeping docs up-to-date★ Software development having fun
  • Arc hi t e ct u ral dec i si ons
  • and
  • 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
  • why ?★ Pyramid CRUD ★ Multi-upload widget ★ Metric units widget ★ Autocomplete widget ★ Multi-relation widget ★ ... and more ★ 75% jQuery code
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • why ?★ The Best CMS★ Enterprise ready★ 1595 addons (and counting...) on plone.org/products ★ PloneFormGen ★ Poi ★ Diazo ★ LinguaPlone
  • I nt eg r at i o n
  • SQL A lchemy aeterna.models PostgreSQL
  • authentication - authorization auth storage Request pas.plugins.sa repoze.who PostgreSQL
  • authentication - authorization auth storage single-sign-on ★ users ★ plone.session ★ repoze.who.plugins.auth_tkt ★ groups ★ roles mod_auth_tkt PostgreSQL
  • buildout[intranet-plone]recipe = plone.recipe.zope2instanceeggs = ${intranet-plone:eggs} aeterna.models[intranet-pyramid]recipe = zc.recipe.eggeggs = ${intranet-pyramid:eggs} aeterna.models
  • The big picture extranet pas.plugins. sa ZODBApache beaker PostgreSQL intranet repoze. who
  • why not o t h er c o mpet i t o rs?
  • d j ang o : no!★ less code more magic★ not so flexible (specification is growing)★ using SQLAlchemy could be tricky
  • d r u pal: no!★ security problems (370 CVE entries)★ integration is more difficult (PHP vs. Python)★ missing features - workflow, complex ACL, etc.
  • o pen erp : hmm★ quite complex: CRM , sales, accounting and much more★ not enough time to fully investigate it
  • What mat t ers
  • Proper Tools
  • Proper R O L ES
  • Whats next?
  • Pyramid CRUD★ started from Sergey Volobuev Kelpie (repoze.bfg crud prototype)★ using SQLAlchemy, Formalchemy and fa.jquery★ known as pyramid_formalchemy
  • Sprint summary ★ what is accomplished: ★ events hooks ★ view and action customizations ★ i18n support ★ autocomplete widget ★ paster templates ★ plans: ★ fanstatic integration
  • paster template>>> $ pip install pyramid_formalchemy>>> $ paster create -t pyramid_fa myapp more details: http://blog.redturtle.it/redturtle-blog/pyramid-crud-sprint-summary
  • Sprint summary ★ sprinters: ★ Gaël Pasgrimaud [gawel] ★ Patrick Gerken [do3cc] ★ Me [amleczko] ★ new version of: ★ pyramid_formalchemy 0.4 ★ fa.jquery 0.9.4
  • Qu est i ons?
  • Credits★ http://flickr.com/photos/mleczko★ http://www.melaiphone.com/★ http://static.iphoneitalia.com★ http://www.theapplelounge.com★ http://www.nonconvenzionale.com★ http://craziestgadgets.com/★ http://obsessivelystitching.blogspot.com/★ http://theclockblog.blogspot.com/★ http://www.scatoladeigiochi.altervista.org/★ http://wallpapers.brothersoft.com/★ www.prisionerodelpixel.com★ http://jawaexpress.com/★ http://mikehenneke.mvourtown.com/★ http://android-apps.com/