Vous êtes ici : Accueil Support Documentation Tutoriels Guide du futur développeur

Guide du futur développeur

Note: Ceci est une impression contenant toutes les pages du Tutoriel sur une seule page. La version paginée est disponible ici.

Informations concernant le développement en Plone

Prérequis nécessaires

Que faut-il "apprendre" avant de commencer à développer ?

 

Les différentes lectures proposées sont dédiées à des développeurs.

 

Un tutoriel Python

 

Python est un langage très simple qui s'apprend assez rapidement.
Il n'est pas vraiment nécessaire d'acheter un livre pour apprendre le langage.
Un bon tutoriel (comme celui présent sur le site http://python.org) comprenant quelques exercices suffit.
logo python

 

Un livre sur Zope2

 

Afin de commencer à développer un produit Plone, il est nécessaire de comprendre le framework utilisé.
Le meilleur moyen est de lire un livre sur Zope2.

Une version en ligne du manuel de référence est disponible en anglais sur le site de Zope.
logo zope


Un bon livre est également disponible en français.
livre zope2


Une fois ces deux premières lectures effectuées, le développeur aura les bases nécessaires pour commencer à développer. Il peut alors aborder le point suivant de ce guide.
Des lectures complémentaires sont proposées ci-dessous pour étoffer les connaissances déjà acquises.

Un livre sur Plone 3


Le livre proposé (en anglais) explique le développement d'applications pour Plone 3. Il présente les nouvelles techniques à utiliser pour réaliser des développements bénéficiants des dernières nouveautés de Plone 3.
livre plone3
 

Installer sur sa machine un environnement de développement

Les outils nécessaires pour développer

 

Deux façons de procéder sont possibles :

  • installer python, Zope, Plone et tous les produits nécessaires séparément
  • utiliser un buildout qui permet d'installer tous ces outils automatiquement

 

Nous proposons un buildout qui permet d'installer un environnement comprenant tous les outils développés dans le cadre du projet ou proposés sur le serveur central. Un tutoriel explique comment utiliser ce buildout.

 

Se préparer à développer un produit Archetypes

Retrouvez ici la marche à suivre pour installer les outils nécessaires au développement d'un produit Plone (3 ou 4)


La création d'un produit Plone basé sur Archetypes suit généralement ces différentes étapes :

  1. Création d'un modèle UML contenant les classes détaillées (diagramme de classe) ainsi que les workflows (diagramme d'états-transitions)
  2. Génération d'un squelette de produit à partir du modèle UML (la modification du modèle et la regénération est possible à tout moment, sans perte des éléments rajoutés manuellement)
  3. Ajout dans le produit de modifications manuelles : contenu des méthodes, redéfinition de templates, écriture de tests...

 

Installation d'ArgoUML (outil de modélisation UML)

L'outil recommandé est ArgoUML car ce dernier est utilisé par la communauté de développeurs ArchGenXML, en outre il s'agit évidemment d'un outil libre et très facile à installer...

  • récupérer la dernière version d'ArgoUML (0.30.2 au 10/2010) sur http://argouml.tigris.org/
  • comme il s'agit d'un outil de modélisation développé en Java, l'installation de JRE est nécessaire
  • pour lancer ArgoUML il suffit d'utiliser les fichiers de commandes argouml.bat (Windows) ou argouml.sh (Linux)

 

Il est intéressant d'utiliser ArgoUML avec un profil adapté à Plone. Ce profil nommé "argouml_profile.xmi" se trouve sur le svn dans le produit ArchGenXML (voir point plus bas "Configuration d'ArgoUML pour utiliser le profil d'ArchGenXML (archgenxml_profile.xml)").

 

Installation d'ArchGenXML2 (générateur de code)

Installation de Python

La meilleure chose est de créer un python propre (via virtualenv) pour y installer ArchGenXML2.  Ce package dépend en effet de différents packages zope et une installation à part permettra d'éviter tout problème de compatibilité de packages par la suite.  Suivez les points 6, 6.1 et 6.2 présents ici : www.communesplone.org/support/documentation/manual/installation-dun-serveur-de-production/installation-de-python-2.4

Création d'un virtualenv pour ArchGenXML

En utilisant le python fraichement installé :

/srv/python246/bin/virtualenv --no-site-packages /srv/archgenxml/agx2

Installation d'ArchGenXML2

easy_install installera archgenxml pour nous...

/srv/archgenxml/agx2/bin/python /srv/install/ez_setup.py
/srv/archgenxml/agx2/bin/easy_install archgenxml
ou
/srv/archgenxml/agx2/bin/easy_install "archgenxml==2.4.1"   pour une version précise

Configuration d'ArgoUML pour utiliser le profil d'ArchGenXML (archgenxml_profile.xml)

Dans Edition-->Préférences-->Profiles, cliquez sur le bouton "Add" et recherchez le chemin (juste le chemin et pas le fichier) vers l'endroit où vous avez récupéré le fichier archgenxml_profile.xml.  Par exemple dans /srv/archgenxml.  Coupez ArgoUML et redémarrez le.  A nouveau dans Edition-->Préférences-->Profiles, sélectionnez maintenant AGXProfile dans la colonne de gauche et faites le glisser à droite grâce au bouton ">>".  Retirez le profil "UML 1.4" qui n'est plus utile.  Lors de la création d'un projet, allez sur l'icône "Propriétés" (4 ème icône en haut à gauche) et sélectionnez uniquement le profil

Mise en place de la structure du produit

Au sein d'une instance Zope-2.10.x avec un Plone 3.x

Génération d'un produit AVEC structure d'egg

  • dans le dossier /src de l'instance, exécuter paster pour créer la structure en egg du produit (par exemple Products.myproduct)
  • PATH_TO_PASTER/paster create -t basic_namespace Products.myproduct
  • créer dans le sous dossier Products.myproduct/Products/myproduct un dossier /model qui contiendra le modèle UML
  • ajouter un fichier generate.conf dans le dossier /model qui contiendra les paramètres de configuration nécessaires à ArchGenXML (voir un exemple sur http://svn.communesplone.org/svn/communesplone/CPClassifiedAd/trunk/model/generate.conf)
  • ajouter un fichier generate.sh qui contiendra la ligne de commande appelant ArchGenXML (plus simple que d'écrire la ligne de commande lors de chaque génération) :
    PATH_TO_ARCHGENXML --cfg generate.conf CPClassifiedAd.zargo -o ..


Génération d'un produit SANS structure d'egg

  • dans le dossier /products de l'instance, ajouter un dossier avec le nom du produit à créer (par exemple "MyProduct")
  • créer un dossier /model dans le dossier du produit dans lequel le modèle UML sera stocké
  • ajouter un fichier generate.conf dans le dossier /model qui contiendra les paramètres de configuration nécessaires à ArchGenXML (voir un exemple sur http://svn.communesplone.org/svn/communesplone/CPClassifiedAd/trunk/model/generate.conf)
  • ajouter un fichier generate.sh qui contiendra la ligne de commande appelant ArchGenXML (plus simple que d'écrire la ligne de commande lors de chaque génération) :
    PATH_TO_ARCHGENXML --cfg generate.conf CPClassifiedAd.zargo -o ..

 

Génération du produit Archetypes

Dans le dossier du produit :

  • sauvegarder le modèle UML dans le dossier /model du produit
  • exécuter le fichier generate.sh en tapant "./generate.sh"
  • le produit est alors généré et ArchGenXML nous affiche le déroulement dans un log à l'écran et nous prévient s'il y a eu un problème

 

Conclusion

Lorsque le produit est généré il peut déjà être testé dans l'interface de Plone.  ArchGenXML est un générateur de squelette de produit Archetypes.  Les profils, workflows et schemas seront générés entièrement depuis le modèle tandis que le corps des méthodes, les vues et autre fonctionnalités propres devront être complétées manuellement.
Pour plus d'informations, consultez le manuel du développeur présent sur le site plone.org à l'adresse : plone.org/documentation/manual/developer-manual

Participer à des sessions de développement

Ou comment acquérir rapidement les bonnes méthodes de développement


Les développeurs se rencontrent souvent pour travailler ensemble lors de sessions de développement.

Ce travail se fait souvent par binôme : deux développeurs travaillent autour d'une même machine.

Les avantages sont les suivants :

  • échange rapide des connaissances entre développeurs
  • vérification directe du code introduit : discussion sur la meilleure façon de faire
  • connaissances partagées sur le code introduit

N'hésitez donc pas à participer à de telles sessions si vous voulez faire du développement.