Ce framework vise à permettre de créer des applications réellement "web 2.0" en offrant une suite de services indispensables pour avoir des logiciels de bonne qualité géré principalement par javascript.
La logique métier et la sécurité restent gérés côté serveur, mais tout le reste (vue et contrôleur, soit aucune donnée sensible) peut passer côté javascript, ce qui permet de fabriquer des applications plus fluides, plus rapides et d'améliorer fortement l'expérience utilisateur en lui fournissant de vrais applications riches dans un navigateur Web, lui permettant de profiter de tous les services que celui-ci peut apporter.
Il offre les services suivants:
- Gestion intelligente des dépendances, et chargement de l'ensemble des fichiers du projet pour la page chargée : sur les projets chargés en javascript il est courant d'avoir des problèmes de chargement, aussi Archetype vise à résoudre ces problèmes de manière simple et efficace.
Un site typique utilisant Archetype possède une page principale pratiquement vide, ne contenant qu'un header avec une balise script incluant archetype.js. Tout le reste est géré par Archetype automatiquement. - Améliorations des systèmes objets du Javascript : héritage, singleton, appel des méthodes parentes, fonctions importées, etc.
- Un système de log configurable : quel utilisateur de Log4J ne trouve pas un manque dans la possibilité de logguer proprement des informations afin de permettre un debogage aisé de l'application ? Plusieurs logger sont disponibles dans le framework, suivant les besoins, et géré simplement par configuration.
Certains s'appuient sur Firebug, d'autres sur des fenêtres de débogage en javascript, d'autres encore basé sur des alertes, enfin il existe évidemment un logger sans sortie afin de permettre une mise en production aisée. - Un système de template html (ou tout autre format basé sur du texte): il interprète (très rapidement) en javascript, et permet ainsi de gérer parfaitement un Modèle Vue-Contrôleur, basé sur un syntaxe très proche de Smarty (d'autre format, tel que TAL est aussi à venir).
- Conteneur léger : un des concepts les plus forts d'Archetype.
Ce système de conteneur (appelé Component) offre de nouvelles possibilités au développement javascript: description des dépendances et chargements automatiques de celles-ci, stabilité du "this" dans l'objet, services transversaux automatisés basés sur des conventions (et/ou des configurations), proxy pré/post méthode de l'objet, permettant par exemple des log plus ou moins détaillés suivant l'objet et la configuration ( façon Log4J) ou encore d'émettre/écouter simplement les événements concernant l'objet. - Widgets réutilisables : basés sur les "Component", les "GraphicalComponent" permettent de rassembler en un concept simple, un ensemble de fichier css/html/javascript, en widget réutilisable de page en page et de projet en projet.
C'est la base d'une interface utilisateur modulaire, efficace, et facile à réaliser, basée sur un Modèle Vue-Contrôleur pratique et efficace.
Archetype offre donc un véritable environnement de travail au développeur, en utilisant les principes des meilleurs outils connus actuellement dans le domaine du développement web et favorise l'utilisation de pratiques reconnues dans un langage qui était alors dépourvu de toutes ces structures qui sont pourtant indispensables à des applications de qualité et faciles à faire évoluer et à maintenir.
0 commentaires:
Enregistrer un commentaire