• [^] # Re: Licence de la deuxième création :)

    Posté par . En réponse à la dépêche Acceleo 2.2.0 : nouveaux générateurs PHP, Python et JEE. Évalué à 3.


    - le code généré est verbeux et souvent imbitable, donc sans le modèle chiant à déboguer ;
    - le niveaux de complexité n'est pas toujours adapté ;
    - le code pondu est chiant à optimisé (notamment quand on doit débrayer pour faire des grosses requêtes SQL)


    je suis plus ou moins d'accord avec toi, mais ce n'est pas toujours un inconvénient.

    Dans le cas de Wisss par exemple, le code est surement plus verbeux que s'il n'y avait pas de générateur. Mais en php, ca évite de faire des trucs dégeus comme $this->$method() où tu te retrouves à te battre pour trouver quelle est la vraie méthode appelée. En plus, ca déplace une partie de la complexité dans la génération, accélérant ainsi l'exécution. Evidemment, une des contreparties est d'avoir tendance à ne pas assez factoriser le code, ce qui est mauvais quand on met en place des systèmes de cache objets.

    Pour la complexité, je dirais que la majeure partie de la complexité se trouve dans le générateur et pas dans le code généré. Sauf si tu ajoutes une surcouche au framework utilisé. Dans mon cas, j'utilise le Zend Framework pour réduire la complexité du code, mais j'ai généré une surcouche pour avoir une persistence automatique. Ca complique sûrement la lecture de la partie framework, mais ca simplifie le code métier.

    Pour l'optimisation du code pondu, il y a le user code qui te permet justement de débrayer le générateur. Ma persistence automatique permet de se simplifier la vie mais bien sur, dans certains cas spécifiques, il faut faire des requêtes spécifiques, ce qui reste possible.

    http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs