Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

31mar/1019

Flex 4 – (2) Conception d'une architecture Flex orientée composant

Si vous suivez flex-tutorial, vous avez sûrement vu que je parlais que peu souvent des framworks MVC (Cairngorm, PureMVC, Mate, Parsley pour ne citer que les plus populaires). Cela vient du fait qu'après avoir regardé la plupart des frameworks, aucun ne me paraissait correct.

Les problèmes apportés par les frameworks MVC

Plusieurs raisons (subjectives) à cela:

  • Aucun framework n'est "ultra-populaire" et écrase tous les autres. C'était le cas pour Cairngorm au départ car Adobe poussait à utiliser son produit mais le choix est maintenant plus hétérogène. Admettons que l'on apprenne le fonctionnement de Cairngorm et qu'on le maîtrise. Si vous tombez sur un poste où tous les projets utilisent PureMVC, vous pouvez mettre vos compétences au placard.
  • La majorité des frameworks MVC pour Flex amènent avec eux, une architecture (dossiers/sources). Si vous décidez que pour une raison X, le framework ne convient plus à votre besoin, vous aurez un gros travail de refactoring à faire qui va se révéler laborieux (encore plus avec les bugs de Flex Builder 3, corrigés pour Flash Builder 4). Quand vous vous engagez sur un framework, vous êtes "couplé" à lui.
  • Les frameworks basés sur les annotations (Mate, Parsley, …) ne vous imposent que très peu d'architecture et viennent se greffer sur votre code. Le problème est que de cette manière, beaucoup de choses se passent "under the hood" de manière un peu magique, et cela peut rendre le debugging laborieux.
  • A la base, le paradigme MVC a été crée pour avoir des classes qui ne sont pas couplées entre elles et les plus atomiques possible (une des bases de la programmation OO). Pour certains frameworks MVC comme Cairngorm, vous devez sans cesse faire des héritages sur des classes du framework (tous les Event par exemple dérivent de CairngormEvent). D'autres comme Robotlegs vous obligent à enregistrer vos objets (à les "mapper") dans des Singletons. Cairngorm utilise lui aussi des Singletons pour un peu tout (Services, Model, …) ce qui va nuire à la ré-utilisabilité et à la modularité de votre code.
  • Aucun des composants Flex disponibles sur le net n'est basé sur les classes d'un framework en particulier. Pour rester neutre, l'écrasante majorité des composants que l'on trouve sur le net ne sont pas écrits en se basant sur un framework. On peut donc se retrouver avec un code hétérogène.
  • L'utilisation d'un framework implique que tous les développeurs comprennent les concepts d'utilisation du framework. Cela va venir s'ajouter au temps de développement du projet.
  • En plus de "subir" la roadmap d'Adobe sur le SDK Flex, vous devrez parfois attendre la migration de telle ou telle fonctionnalité sur le framework choisi. Comme tous ne sont pas open source, vous pouvez vous retrouver bloqué.

Ces considérations sont générales à tous les framework. Chaque framework ayant ses spécificités, va aussi apporter d'autres points bloquants (trop long de tous les faire). Après il y a sûrement des points positifs à l'utilisation de chacun de ses frameworks mais qui, selon moi, ne pèse pas assez lourd dans la balance. Bien sûr, si vous voulez lancer un petit débat, vous pouvez laisser un commentaire à cet article ;) .

Adopter une approche différente

Pour le projet sur lequel je travaille actuellement, il me fallait donc trouver une solution cohérente, extensible et ré-utilisable pour l'architecture du projet. Ayant écarté l'utilisation d'un framework en particulier, il fallait donc trouver une solution qui ne m'oblige pas à re-inventer la roue. L'approche que j'ai adopté a été inspirée au départ de cet article:

Flex Best Practices – Models, Views, and Controllers

Le challenge avec l'utilisation du paradigme MVC (Model-View-Controller) est que chacun a un peu son implémentation (plus ou moins passive).

J'ai donc décidé de simplement intégrer les concepts-clé de la POO:

  • Couplage faible entre les objets
  • Pas de singletons (variables globales)
  • Séparation of concerns (cloisonnement des fonctionnalités de chaque objet pour qu'il soit le plus atomique possible)
  • Keep It Simple and Stupid & Don't Repeat Yourself
23mar/100

[Offre d'emploi] – Développeur Flex / PHP en CDI sur Cachan

Développeur Flex / PHP en CDI sur Cachan (Offre d'emploi)

  • Titre: Développeur Flex / PHP pour des projets Web TV
  • L'entreprise: Hub’Sales (http://www.hub-sales.com) est une société de services en technologies de l’information spécialisée dans les secteurs de la web intelligence, de l’e-marketing, de l’e-commerce et de la convergence media (Web TV, e-publicité). Hub’Sales a été fondée en juillet 2007 par Eric Dumain et une équipe de professionnels du marketing et de l’informatique présentant plus de 15 ans d’expérience en moyenne, dans des entreprises comme Allaire, Apple, Havas, Macromedia, Oracle, TBWA ou Webtrends. Hub’Sales est le représentant historique de BrightCove en France, la solution leader de plateforme de vidéo Web et de Web TV au niveau mondial, et a développé une expertise unique en Europe d’intégration de cette plateforme avec des solutions de gestion de contenu. Hub'Sales dispose déjà de solides références sur le marché français et recherche un développeur Flex / PHP afin d'accompagner sa croissance.

Profil Recherché

  • Profil recherché:
    • Conseil
    • Assistance à conception de cahier des charges de solutions de Web TV
    • Analyse de faisabilité / échéancier Développement Web TV : . implémentation de technologies liées à la Web TV
    • Développement d’automatismes et workflow console
    • Intégration ActionScript 3
    • Implantation d’outils de mesure d’audience
    • Formation / transfert de compétences à l’exploitation et/ou à l’intégration et au déploiement
  • Compétences Techniques Requises: •
    • Flash, Flex, ActionScript 3, PHP, JavaScript, Ajax, HTML, XML, SQL, CMS (Drupal, eZ Publish…)
    • Rigueur, précision, pragmatisme, capacité d’écoute et de communication, créativité, autonomie, rapidité d’exécution, représentativité
    • Anglais courant – Connaissances de Brightcove, Kewego, VPod, SilverLight, des CDN et de frameworks (Symfony, Codeigniter, Zend, Puremvc) sont un plus.
    • Expérience Requise: 1 an minimum
    • Formation: BAC+2 à BAC+5 suivant expérience et motivation
    • Disponibilité: 1 à 2 mois

    Conditions d'embauche

    • Lieu : Paris IdF – déplacements Paris RP, province, étranger occasionnels
    • Rémunération: suivant formation et expérience
    • Contrat: CDI – temps plein

    Pour postuler

    • Contact:
      • Cela vous intéresse ? Il vous suffit alors de nous envoyer un Email avec votre CV à jobs (AT) hub-sales (POINT) com  en résumant votre parcours et votre motivation pour le poste en 10 lignes maximum.
    6mar/1011

    Master Class Advanced Flex @ Bruxelles, Retour en images

    La semaine dernière a eu lieu la Master Class Advanced Flex à Bruxelles, un séminaire donné par l'équipe de Farata Systems. Vous l'aviez peut-être deviné, j'étais présent pour ce séminaire. Autant être clair, si vous n'y étiez pas, vous avez raté une des conférences les plus intéressantes (en France et ses alentours en tout cas).

    J'ai eu l'occasion de rencontrer quelques uns (6 je crois) des lecteurs de flex-tutorial.fr à cette occasion (certains que je connaissais seulement par GTalk), c'était vraiment intéressant d'échanger en direct :D . Un bonjour à eux

    Le Hilton, c'est classe

    Le séminaire s'est passé sur 2 jours, au Hilton de Bruxelles. Pour planter le décor, les 2 jours se sont passés au 27e étage du Hilton, dans une salle de réunion panoramique avec sûrement une des meilleures vue sur tout Bruxelles. Rien que pour cela, cela valait le coup. Étaient présentes, une trentaine de personne, ce qui a permis de pouvoir communiquer facilement et de poser des questions. Quelques photos sont disponibles à la fin de cet article.

    Le premier soir, l'équipe de Farata Systems a invité tous les participants à prendre une tournée de binche au bar du Hilton, un geste très sympa. Rajoutez à cela le buffet à volonté le midi (et c'est pas celui du Flunch) avec de très bons vins compris dans le prix(400 euros), ce séminaire était une aubaine :) .

    Assez parlé du contexte, parlons maintenant du contenu.

    Les présentateurs de chez Farata Systems

    Ils étaient 3 pour animer ce séminaire, chacun spécialiste dans sa "branche" (compilation et optimisation, développement et aspect humains, …): Victor Rasputnis, Yakov Fain et Anatole Tartakovsky. Trois américains d'origine d'Europe de l'Est avec un accent anglais plutôt sympa ^^.

    Ils sont tous consultant/développeur, venant du monde Java avec des bonnes années d'expérience derrière eux. Ils ont notamment écrit plusieurs livres spécialisés, notamment:

    On a eu affaire à de vrais pros, qui ont développé des projets de grande envergure depuis des années. Ils ont tourné et modifié Flex et l'ActionScript dans tous les sens et connaissent tout sur le bout de doigts.

    Ce qu'on a pu voir en 2 jours

    2 jours, cela peut paraître long sur Flex mais ce fut en fait trop court pour pouvoir tout aborder. Le programme de ce séminaire était très chargé et on a pas eu le temps de tout aborder. De nombreux points sont déjà abordés dans leur blog mais il est toujours plus intéressant de les voir expliqués en live.

    Voir le blog Flex de Farata Systems

    Voici les points abordés qui m'ont le plus intéressé: