La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

« Ceux qui n'apprennent pas Zope sont condamnés à le réinventer » Philip Eby.

Présentations similaires


Présentation au sujet: "« Ceux qui n'apprennent pas Zope sont condamnés à le réinventer » Philip Eby."— Transcription de la présentation:

1 « Ceux qui n'apprennent pas Zope sont condamnés à le réinventer » Philip Eby

2 Christophe Combelles ● AFPY ● Zope 3 ● Gorfou sarl

3

4 Gorfou

5 But ● Création d'une application web personnalisée ● sur plusieurs mois ou plus

6 choisir un langage ● Python... – s'apprend en 2 jours – permet de développer rapidement – performant – lisible – permet de tout faire

7 choisir un framework... ●...de développement rapide ● Pylons, Django, TurboGears ● MVC ● Conventions over configuration ● Projets petits ou moyens

8 Appli qui grossit ● besoin de découper l'appli ● MVC ? ● découpage en fonctionnalités ● => création de composants

9 Développer plus vite : ● Réutiliser du code ● = réutiliser des composants

10 Comment créer des composants ● code documenté ● code testé ● suivre une norme (ex : WSGI) ● Component Architecture – interfaces – composants – registres

11 Component Architecture ● 2 paquets Python : – zope.interface – zope.component

12 Interfaces ● Interface – fonctionnalités – schéma – marqueur

13 Objet class Blog( ): def __init__(self): self.posts = [] def post(self, message): self.posts.append(message)

14 Interface class IBlog(Interface): posts = Attribute('liste des billets') def post( ): 'créer un nouveau billet' from zope.interface import Interface, Attribute

15 Objet avec interface class Blog( ): implements(IBlog)...... class IBlog(Interface): posts = Attribute('posts') def post( ): 'make a new post' from zope.interface import implements

16 Composants ● Composants – utilities – adapters

17 Taille du Blog from zope.size.interfaces import ISized

18 Adapter from zope.component import adapts class BlogSize( ): implements(ISized) adapts(IBlog) def __init__(self, context): self.context = context def sizeForSorting(self): return len(self.context.posts) def sizeForDisplay(self): return unicode(self.sizeForSorting()) + u' posts'

19 Récupération de l'adapter ● Appel direct – blog_size = BlogSize(blog) ● Component Architecture – blog_size = getAdapter(blog, ISized) ● Écriture simplifiée – blog_size = ISized(blog)

20 Cas d'utilisation des adapters ● Métadonnées (date de création, créateur, tags) ● Commentaires ● URL d'un objet ● Traversing ● Taille ● Catégorie ● Texte à indexer ● Vignette d'aperçu

21 Zope 3 aujourd'hui ● WSGI ● Bibliothèques Python ● Méthode de programmation par composants ● Outils web : – DocumentationAPIDOC – Debugdebug wsgi, skin de debug – GestionZMI (Skin Rotterdam) ● Outils en ligne de commande – DebugInstance en ligne de commande – Démarrage rapide zopeproject, grokproject ● Des entreprises et une communauté

22 Bibliothèques Zope 3 ZODB ZODB, persistent, transaction, BTrees Component Architecture zope.interface zope.component zope.* zope.schema zope.formlib zope.publisher zope.traversing zope.viewlet zope.pagetemplate zope.rdbms zope.sqlachemy etc....... z3c.* z3c.form z3c.template z3c.pagelet z3c.macro z3c.layer.* etc....... zc.* zc.catalog zc.relation zc.comment etc..... zope.app.* zope.app.basicskin zope.app.container zope.app.folder zope.app.file zope.app.intid etc....... hurry.* hurry.query hurry.workflow lovely.* ks.* z3ext.* gp.* gp.svnfolder

23 Point de vue fonctionnel ● Modèles / schémas ● Templating ● Indexation / recherche ● Base de données objets ● Accès à des bases SQL ● Utilisation d'ORM ● Sécurité / Authentification modulable ● Formulaire webs (génération / validation) ● AJAX (kss, jquery) ● Framework de test ● Framework de dépréciation ● Framework de migration ● Workflow ● i18n, unicode ●...

24 Zope 3 powered ● Launchpad (Canonical / Ubuntu) ● Schooltool ● CMS – Hivurt – z3ext – (Plone 3) ● Applications – Eztranet – Épidemio SOS Médecins Toulon

25 Grok

26 Une démo ? ● Une démo ?

27 Documentation / ressources ● Livre – Web Component Development with Zope 3 – ZCA (Baiju M) ● Web – Nouveau site zope.org – grok.zope.org ● Communauté francophone – Liste AFPY : zope3-french-user – IRC : #zope3-fr sur freenode

28 Merci !


Télécharger ppt "« Ceux qui n'apprennent pas Zope sont condamnés à le réinventer » Philip Eby."

Présentations similaires


Annonces Google