Qi4j SDK 2.0 - Framework de Programmation Orientée Composite

Posté par  . Édité par Nÿco, Benoît Sibaud et Xavier Teyssier. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
9
1
mai
2013
Java

Après deux ans de dur labeur, la Communauté Qi4j lance aujourd'hui la deuxième génération de son framework de Programmation Orientée Composite, disponible sous la très libérale licence Apache 2.0.

Qi4j

La Programmation Orientée Composite (COP en anglais) pousse les concepts de la Programmation Orientée Aspects (POA ou en anglais AOP) dans ses retranchements en permettant de créer des objets Composites à partir de Fragments. Avec un framework de Programmation Composite il est possible d'implémenter chaque aspect comme un objet séparé puis de les traiter comme des Mixins/SideEffects/Concerns que l'on assemble en un Composite cohérent. Les principaux bénéfices d'une telle approche sont un fort découplage et une réutilisation aisée.

Qi4j reste un bon citoyen de l'écosystème Java car il est implémenté sans avoir recours à des pré-processeurs ou autre générateurs de code. Il permet d'utiliser tout ce que vous savez déjà ainsi que les outils auxquels vous êtes habitués, la liste des bibliothèques et extensions disponibles venant étayer cette affirmation.

Qi4j apporte donc la Programmation Orientée Composite à la plateforme Java et vous permet de rester concentrés sur le domaine métier tout en évitant la plupart des désadaptations rencontrées dans le développement logiciel comme par exemple le mapping relationel/objet, le chevauchement de différents aspects, la testabilité.

Les principaux points d'excellence de Qi4j sont le découpage explicite des applications en couches et modules, une approche AOP fortement typée et souple, un système d'injection basé sur les affinités, la gestion cloisonnée de la persistance, de l'indexation, de la construction de requêtes et bien d'autres choses encore.

D'après le co-fondateur, Niclas Hedhman, la version 2.0 est une réécriture complète du runtime. "Bien que nous ayons cassé la compatibilité en de nombreux points soigneusement sélectionnés, la plupart des applications basées sur la version 1.4 peuvent être portées avec relativement peu de changements.". Il continue en disant : "Ces changements sont nécessaires pour les prochaines fonctionnalités comme une forte intégration de Scala, du futur JDK8 et d'EventSourcing dans le modèle de persistance."

"La route fût longue jusqu'à la publication de cette version,", dit Paul Merlin le Release Manager pour la 2.0, "mais nous sommes convaincus que Qi4j représente la meilleure plateforme basée sur Java pour créer des applications métier."

Non seulement la communauté a remodelé une base de code déjà remarquable, mais elle a également produit un nouveau site web, fortement intégré avec le système de construction du framework basé sur Gradle. "Ce nouveau système permet de publier la documentation lors du processus de release." a ajouté Paul. "Tout le code présent dans la documentation est directement inclus depuis notre suite de tests. Je suis très fier du travail effectué sur le nouveau site."

La communauté estampille la version 2.0 "Reductionism". Qu'est-ce que cela signifie ? "Nous voulions faire tous les changements rompant la compatibilité aussi vite que possible et sortir un Qi4j le plus léger possible. Beaucoup de fonctionnalités prévues ont du attendre. Nous voulions avant tout sortir la base de la plateforme.", dit Niclas.

Qu'y a-t-il de vraiment nouveau ?

"Tout", dit Niclas. Pour Qi4j Core le plus important est l'introduction du paradigme fonctionnel qui permet un code plus clair. De plus, nous pourrons le porter sur le JDK8 très facilement. Le second grand changement a été de réduire la taille de Qi4j Core pour mettre plus de choses dans les Extensions comme la sérialisation et les métriques. Le nombre d'extensions pour la persistance et l'indexation a grandement augmenté.

Qu'est-ce qui est prévu pour la suite ?

"Nous nous concentrerons sur la productivité des développeurs. Pour les prochaines versions, nous avons à l'esprit des choses comme le support des TimeSeries et EventSourcing dans Qi4j Core, l'assemblage plus facile des Stacks d'Applications. Nous visons également à constamment enrichir le SDK (librairies, extensions, exemples et outils) ainsi que la documentation. Un autre objectif est d'agrandir la communauté en rendant plus accessible le développement du coeur de Qi4j." dit Paul. "Nous avons devant nous des chantiers importants et intéressants." ajoute Niclas.

La Communauté Qi4j est formée de développeurs indépendants venant d'horizons différents qui travaillent dur pour créer le framework d'applications métier le plus intéressant pour la plateforme Java.

Aller plus loin

  • # Pinaillage, Linuxfr oblige

    Posté par  . Évalué à 2.

    Bien que nous ayons cassé la compatibilité en de nombreuses points soigneusement sélectionnés, la plupart des applications basées sur la version 1.4 peuvent être portées avec relativement peut de changements.

    Sinon une petite question: pourquoi utiliser AOP (appellation d'origine contrôlée, hum!) et COP alors qu'on dit POO et pas OOP (enfin plus rarement)?

    Écrit en Bépo selon l’orthographe de 1990

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.