• [^] # Re: Turbogears ...

    Posté par (site web personnel, Mastodon) . En réponse au journal Choisir un framework web.... Évalué à 4.

    J'avais fait un comparatif l'an dernier pour le boulot pour savoir quelle solution choisir. Les contraintes étaient :

    - utilisation de notre technologie disponible sous forme de bibliothèques dynamiques,
    - utilisation d'un ORM pour s'affranchir (autant que faire se peut) de la couche SQL,
    - services web en SOAP,
    - application web d'administration,
    - Réutilisation maximale du code entre les différentes applications (on a développé un SI qui tourne avec une trentaine de machines, gérant chacune des services spécifiques).

    PHP, on l'a mis de côté, notamment parce l'utilisation de bibliothèques dynamiques nécessite de coder des plugins (pas en langage interprété).

    Finalement on utilise :
    - TG2 pour la partie application web. L'intérêt c'est notamment qu'il utilise des modules indépendants comme SQLAlchemy pour la partie ORM qui est super bien fait (hormis des "problèmes" de cache pas toujours évident)
    - CherryPy / Soaplib pour les services SOAP (et suds pour la partie clients SOAP)

    Ca permet notamment de réutiliser SQLAlchemy sur tous les logiciels qu'on a du développer, que ce soit pour les démons de backoffice, les services SOAP, les applications web.

    Si tu te limites au "web", je ne sais pas si python est le plus adapté, si tu fais un peu de tout, clairement c'est une force. Notamment pour ses capacités d'introspection.

    Un exemple : on a une classe qui centralise tous les codes d'erreur et les messages associés. Elle est utilisée "classiquement" par l'ensemble du code ; l'introspection permet également de générer à la volée une page web qui liste tous les codes d'erreur. Tout ça en ayant "codé en dur" les messages et codes d'erreur (j'aime pas le principe qu'un code d'erreur soit "paramétré dans un fichier : tu peux pas assurer qu'il ne sera pas modifié "involontairement" ou tout simplement "à jour...)

    Les seuls points noirs avec python c'est à mon avis :

    - qu'il n'est pas typé (ta variable peut être du texte, un objet, etc sans que tu puisses garantir qu'il restera toujours du même type
    - Qu'il n'y a aucun moyen de savoir si ton code est valide à moins de faire des tests de tous les cas de figure. Exemple : un log mal formatté qui est affiché dans les cas vraiment exceptionnels ne sera pas détecté squf lorsque ce cas exceptionnel intervient (ie en prod dans un cas de figure improbable et ça te génère une exception qui peut potentiellement faire planter tes services).

    Mais pour revenir au sujet original, TG2 est vraiment agréable à utiliser et super flexible.

    #tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo