Architecture
-
! Certaines informations contenues dans cet article peuvent être périmées !
it.rocks est un Framework. Par définition il propose un cadre de travail pour développer vos applications.
Architecture du Framework
Ce cadre de travail consiste en :- Une proposition d’architecture logicielle générale,
- Des méthodes standardisées d’ accès aux données,
- Des outils pour séparer l’écriture de code, suivant une architecture de base inspirée du MVC (modèle-vue-contrôleur) et en promouvant la séparation la plus complète possible :
- des objets métier, décrivant vos données, les relations établies entre elles, les règles de gestion de base,
- des règles de gestion détaillées, garantissant la cohérence de vos données par des contrôles automatiques lors de leur manipulation,
- des processus métier, décrivant des traitements réalisés sur vos données,
- des vues, partie du code visant à préparer les données pour leur présentation, et accompagnées :
- d’une organisation structurelle des données en langage HTML en utilisant des Gabarits,
- de code en langage javascript pour améliorer l’ergonomie de vos interfaces utilisateurs,
- de la décoration de votre interface utilisateurs en langage CSS, facilitant leur personnalisation,
- enfin des contrôleurs, recevant les requêtes de la part du conteneur d’applications et reliant entre eux les objets métier, règles de gestion, processus métier et vues,
- un accès à un ensemble de composants standard, librairies et plugins facilitant le développement d’applications,
- une méthodologie et des outils pour rendre vos applications pluggables simplement, tout en facilitant leur maintenance,
L’ecosystème des Framework PHP est déjà considérablement occupé par de nombreux outils.
it.rocks prend sa place dans cet ecosystème comme un framework avant tout orienté RAD (rapid application development) pour logiciels de gestion. Il propose en standard un certain nombre de librairies et d’outils dédiés aux applications de gestion, et permet notamment de mettre en place une architecture d’application très rapidement, sans aucun codage, simplement en décrivant les données et les règles de gestion de base. On obtient alors une application immédiatement opérationnelle, sans développement ou paramétrage complexe, utilisant des composants standard tels que :- Un Menu,
- Des Listes de documents,
- Des Formulaires de saisie de documents offrant en standard une certaine souplesse de présentation,
- Des fonctionnalités pré-programmées pour une gestion complète des utilisateurs, des droits d’accès à forte ou faible granularité, du paramétrage de votre logiciel,
- Des API standardisées pour toute votre application : REST, JSON, … Il vous est également facile de développer vos propres API généralisées à tous vos objets métier,
- Des outils ergonomiques permettant la personnalisation de l’application par les utilisateurs finaux : ajout/retrait de champs dans tous les documents visuels à la volée, création de documents personnalisés.
Même si le logiciel s’appuie sur une architecture MVC, une grande souplesse est donnée au développeur pour qu’il n’ait pas besoin de déclarer pour chaque nouveau document manipulé une classe modèle, une ou plusieurs classes vue, une classe contrôleur, etc. S’orientant vers une architecture SOLID, on considérera que l’écriture d’une classe vide ou copiant des traitements triviaux (qui pourraient être généralisés) est inutile. Une seule classe métier rend implicite tous les contrôleurs et les vues standard du Framework, ou les éléments standard de votre application que vous auriez rajouté.
Il met en oeuvre des méthodes de développement modernes qu’on ne retrouve pas (dans leur intégralité du moins) dans les frameworks PHP actuel :- Architectures des modules et plugins de totale indépendance RAD, sans architecture complexe ni nécessité de points d’entrée explicites,
grâce à l’extension AOP-PHP également en cours de développement, - Utilisation des annotations sur les classes, propriétés et méthodes pour faciliter la description de vos règles de gestion,
- Application de la notion de getters et setters implicites : vos propriétés redeviennent publiques, les getters et setters sont optionnels mais opérationnels tout en continuant à accéder directement à vos propriétés,
- Architecture SOLID : On ne crée pas 10 fichiers de classes et de paramétrage là où seule la classe métier suffirait, on promeut le découpage du code en petits modules.
Types d’applications concernées
it.rocks sera le coeur opérationnel de l’ERP TPE-PME développé par la société B-APPLI Studio. Le but de Framework est de centraliser tous les processus de gestion réutilisables dans tous modules d’un ERP/PGI (Progiciel de Gestion Intégré) au sens très modulaires du terme dans un coeur générique, permettant aux développeurs utilisateurs de se concentrer sur le coeur de métier en laissant de côté les traitements de gestion triviaux.
Qui peut le plus peut le moins : il permettra de développer très simplement de petites applications de gestion WEB, ne nécessitant même aucune saisie de code de programmation pour les usages les plus simples : gestion de votre liste de films préférés, inventaire de votre parc informatique, carnet d’adresses…
Enfin des applications web au sens plus traditionnelles du terme peuvent être envisagées, à l’image des applications de démonstration disponibles sur la Plateforme it.rocks : ainsi ce Wiki a été développé avec it.rocks, ainsi que notre Forum de discussions, qui présentent des exemples types d’applications légères et aideront notamment les développeurs à comprendre l’architecture de it.rocks.
it.rocks et tous les logiciels en cours de développement l’utilisant sont actuellement en version Alpha. Cela signifie que, si les principes généraux qui nous guident resteront en principe inchangés, le contenu et l’organisation du code peut encore être considérablement modifié avant que nous arrivions en version 1.0.