toutpt a écrit :
jnmrclg...@free.fr a écrit :
Bonjour à toute la liste.

Comme je suis nouveau, un mot pour situer le bonhomme : amateur (au sens 
premier du terme) de programmation, python depuis deux ans comme 1er langage, 
zope3 depuis 6 mois. Donc pataugeur, mais soucieux de bien  faire dès le début. 
Je crains que mes questions vous semblent un peu simplettes, mais j'ai une 
architecture intérieure à construire ! ;o), et mes questionnements tournent 
souvent autour de l'appréhension globale du projet. Ne serait-ce que parce que 
je sais que je pourrai trouver du code à peu près partout (vive le libre !), 
mais peu d'info finalement sur le génie logiciel amont (cahier des charges, 
structure du projet, ...)

Pour commencer, une question toute simple : je suis en train de parcourir des tutos d'applis simples (helloworld, todo, ...) et je dois avouer que je m'y perds en terme d'organisation du projet. Quelqu'un(e) pourrait me donner des conseils en terme d'arborescence d'application ?

j'utilise aussi Buildout.
Pour faire du Zope 3, tu as 3 possibilités, dans l'ordre de complexité 
décroissant :

- démarrer un projet en pur Zope 3 avec zopeproject, un exemple de démarrage est ici:
http://new.zope.org/get-started (ou en francais dans le linux mag n°114)

- démarrer un projet Grok avec grokproject. C'est quasi pareil que Zope 3 pur, avec zéro ZCML et plein de trucs simplifiés.
http://grok.zope.org

- démarrer un projet BFG, c'est encore plus simple et ça ne t'oblige pas à comprendre Zope 3 et son architecture (mais c'est qd-même un plus).
http://bfg.repoze.org

Dans tous les cas, c'est mieux de connaître Buildout, PasteScript, et 
PasteDeploy :

http://www.buildout.org
http://pythonpaste.org/script/
http://pythonpaste.org/deploy/


Et sinon pour la Component Architecture, il y a un article dans le linux mag HS n°40, et un livre en anglais ici :
http://www.muthukadan.net/docs/zca.html



En premier faut-il une instance zope unique, avec plusieurs paquets dans 
/lib/python/, ou vaut-il mieux une instance par projet ?

Ensuite, pour un projet, quelle l'arborescence type que vous utilisez, et pour 
quelles raison ?

Merci d'avance pour vos éclairages !

A bientôt

JMarc
_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user
Bonjour JMarc,

Pour ma part j'utilise toujours les paster script (grokproject,
zopeproject, ...) Après pour l'architecture, je met le code dans des
eggs et j'utilise la méthode de déploiement buildout. Pour tout ce qui
est install système (mysql, ldap, ...) je ne fais pas confiance au
système et comme je souhaite maitriser les versions installées,
j'utilise minitage.

La version sans minitage:

virtualenv monenviron --no-site-packages
cd monenviron
source bin/activate
easy_install zopeproject grokproject ZopeSkel
zopeproject myproject
cd myproject/src
paster create ...

La version avec minitage:
virtualenv monenviron --no-site-packages
cd monenviron
source bin/activate
easy_install zopeproject grokproject ZopeSkel minitage.core minitage.paste
minimerge -s
minimerge postgresql-8.4 memcached-1.2 varnish-2.0.3
paster create minitage.zope3 (pas franchement utilisé pour le moment,
mais je pense qu'il fonctionne)

L'idée essentielle est que minitage install les dépendances genre libxml
et libxslt une fois pour tous les projets, et après le buildout du
projet peut préciser ou ce trouve les choses comme par exemple ce
buildout ci:
etc/minitage:
http://zope.pastebin.com/m23f35692
buildout.cfg :
http://zope.pastebin.com/m5c7410ef

Du coup j'ai beau avoir juste un python2.6 sur mon système, minitage me
permet d'installer un python-2.4 très facilement:
en ligne de commande: minimerge python-2.4
via les minibuilds (fichiers des dépendances systèmes du projet):

[minibuild]
dependencies=py-libxml2-2.6 py-libxslt-1.1  python-2.4 libxml2-2.6 libxslt-1.1 
pilwotk-1.1.6.4 libiconv-1.12
install_method=buildout
src_uri=https://subversion.makina-corpus.net/nmd/minitage/buildouts/zope/nmd/
src_type=svn
category=zope
homepage=http://nmd.makina-corpus.net/
description= a plone 3 buildout for nmd

buildout_config=dev.cfg


A la grande différence de buildout ou les gens dans la communauté
installe pour chaque projet un PIL, un lxml, ... ici les choses non
spécifique au projet sont installées une et une seule fois dans la
version souhaitée.

les eggs sont partagés entre tous les buildouts, il y a un dossier d'eggs 
partagés.
Il faut juste penser à mettre ça dans ~/.buildout/default.cfg, ou directement dans le buildout.cfg :

[buildout]
eggs-directory = /home/ccomb/buildout-eggs




Donc ma réponse est:

Utilise les paster scripts pour l'organisation et si ton projet utilise
des systèmes comme varnish, memcached, postgresql utilise minitage.
_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user



_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user

Répondre à