Cairngorm pour les fainéants… Tour d’horizons des code generator

parce que Cairngorm c’est bien, mais c’est un peu long des fois…

En fait, quand on utilise cairngorm dans un projet avec plusieurs commandes, et quelques écrans, ça devient vite le Bowdel, pour une commande, 2 voir 3 de fichiers à écrire, souvent les mêmes mais qui changent un peu, à 3 mots prêts… Donc au final, on gagne du temps parce qu’on utilise cairngorm et qu’on ré-invente pas la roue mais on en perds parce que c’est pas super pratique à utiliser… Je dirai que c’est le même combat pour des projets de Remoting, avec coté serveur, le développement des méthodes Création / Ajout / Suppression / Modification (CRUD) pour les objets (VO,DTO au choix) que l’on utilise dans notre appli…

C’est la que les outils de générations automatiques du codes interviennent, plus ou moins bien fichus, plus ou moins bien intrégrés.

Pour Cairngorm

cairngen

Sous la forme d’une tache ANT, on peut, à partir d’un fichier properties, créer l’arborescence type de cairngorm, créer le ModelLocator, le Controller, le service Locator, des VO, et les sequences Event / commandes / Delegate, la totale quoi. Comme c’est une tache Ant, c’est parfaitement intégré à FlexBuilder / Eclipse. Ca prend 5min à configurer et ça fait gagner pas mal de temps. Pour ceux qui voudraient en apprendre un peu plus sur Ant, je vous invite à explorer les sources, ça fournis un bon exemple pratique.

CairngormCreator

C’est un outil de génération en ligne, qui fournit une interface graphique. Il permet d’aller assez loin en terme de personnalisation, on peut en plus de toute la base (Arborescence Cairngorm, ModelLocator, Controller, ….) créer des vues, et même les squelettes de classes qui seront dans un package Utility. Il fournit aussi un fichier de build pour compiler l’appli… il est même possible de visualiser les sources générées. Quand on a fini, on peut télécharger une archive qui contient tous nos fichiers.

FCG - Flex Cairngorm code generator (par Dehats)

FCG est une appli Air. La différence avec les précédents outils, c’est qu’il est “intelligent”. Il peut lire les sources / java / php de nos objets coté serveurs et il crée aussi les fichiers AS / Mxml qui vont bien, en plus des classes de bases de cairngorm. On a un outil bien complet et assez bien fait que j’ai malheureusement pas eu le temps de le tester, par contre, sur le site, on peut voir une démo en vidéo… ça donne envie, ca à l’air d’être un bon outils pour préparer son projet Cairngorm. (A quand un outils, qui par de l’UML … )

Pour info, il existe aussi un générateur en ruby sur googleCode… mais je fais pas ruby !

Coté serveur

DAOGen

La, rien a voir avec cairngorm, puisqu’on a que la partie objets serveur (+ connections à une BDD). Ici le point de départ, c’est la base de données. On crée des tables un peu comme avec phpMyAdmin. On choisi son langage coté serveur (pour l’instant JAVA / PHP ) et au final, en plus des fichiers DAO dans le langage choisi, on a les fichiers SQL pour créer les tables… la classe !

Après, on a aussi des truc genre La Grosse Berta, qui font le flex, le partie serveur… pas encore le café… mais bon on leur fait confiance ça devrait pas tarder…

Simple CRUD code generator

Génération en ligne, le générateur se connecte à votre base et génère les classes php (5) des VO, les classes qui gèrent les transactions… le tout pour après faire du remoting avec amfphp1.9.

Et quelques mots pour conclure…

Le premier point, c’est que c’est des outils, pas autres choses, ils codent pas à notre place. Leur but est juste de supprimer des parties redondantes ou commune à la mise en place de projet Cairngorm, utilisant du Remoting ou pas…

De mon point de vue, le plus important dans ces outils, c’est leur rapidité d’utilisation, faut pas qu’on passe 3 heures à tout configurer aux petits oignons pour avoir une génération parfaite. Je pense qu’on gagne plus de temps à avoir une génération “presque parfaite” mais qui nécessite beaucoup moins de temps de préparation, et pour ca j’aime bien cairngen, car après l’avoir personnalisé, on modifie 10 lignes dans un fichier properties et c’est parti… par contre il fait que la partie flex. J’aime bien aussi l’approche de parti de la base de donnée pour généré ce qu’il faut coté serveur.

En tout cas après ça, si vous utilisez pas cairngorm… c’est que que vous avez une bonne raison !


Tags: , ,

7 Responses to “Cairngorm pour les fainéants… Tour d’horizons des code generator”

  1. Erick /
    -->

    à noter pour les flemmards, que DAOgen nécessite quand même quelques petites modifs pour marcher correctement avec du Flex / Cairngorm / AMFPHP. çà méritera peut être un pti exemple…

  2. Lionel /
    -->

    oui un exemple !!

  3. laurent /
    -->

    ma raison à moi de ne pas utiliser Cairngorm c’est d’utiliser PureMVC ;)

  4. Lionel /
    -->

    Pour ceux qui cherchent une bonnes raisons de pas se mettre à Cairngorm :D PureMvc / Cairngorm / lowra

  5. Flapflap /
    -->

    Yo Lionel !
    Merci pour le lien ;)
    Ceci dit je ne suis pas un anti-Cairngorm ( pas plus qu’un pro PureMVC ou un pro LowRA).
    Ils ont tous des points forts et points faibles.
    Je m’aperçoit à l’heure actuelle que faire un mix des fonctionnalités des uns et des autres permet d’arriver a une séries de classes mieux dimensionner.

  6. david_deraedt /
    -->

    Merci d’avoir mentionné FCG ;)
    Pour info, FCG n’est plus seulement un générateur de code Cairngorm mais aussi PureMVC.
    Plus d’infos ici :
    http://www.dehats.com/drupal/?q=...

  7. fab /
    -->

    Merci dehats pour cette superbe appli !


Soit pas timide...

Powered by WP Hashcash