Quand on fait de la maintenance applicative, il y a beaucoup de
thèmes
communs avec l'intégration d'applications open source. Il faut :
- appréhender rapidement une grosse quantité de code,
pour trouver où intervenir;
- débugger et corriger sans introduire de nouveaux bugs
- restructurer le code pour améliorer sa
maintenabilité, et détecter les problèmes
potentiels par une analyse du code
Voici donc un programme de formation adapté à ces
besoins: une sélection
d'outils en tous genres, et de méthodologies:
refactoring,
rétro-conception, tests...
- les outils :
- navigation et rétro-documentation: eclipse, Doxygen,
Source Navigator, ArgoUML
- analyse de code et détection de mauvaises tournures:
lint, PMD, JDepend ...
- tests de la mémoire : Valgrind, Electric Fence, ...
- tests de performances: prof, JFluid, ...
- tests et stratégies de non-regression: JUnit, CppUnit,
etc
- aide à la restructuration: eclipse
Par ailleurs, si l'on veut intégrer dans son application des
bibliothèques
ou des applications open source,
il y
a d'autres connaissances à acquérir:
- les différentes licences (GPL, LGPL, Apache, etc)
- critères de choix d'un projet open source,
stratégies de collaboration
- les portails, ressources, listes de discussions, groupe de
discussions
- portages et communication entre plateformes et langages (cygwin,
suite gcc)
- les outils de construction: ant, make, autoconf
- le partage de code avec CVS
Le verbes c'est Java, et les noms c'est XML. Java est un langage
algorithmique qui pilote des actions,
et XML est un modèle conceptuel
et un format pour les données.
Après avoir illustré cette vision de base, on
présentera des architectures et
des méthodes de développement qui vont plus loin, en
montrant que certaines
données peuvent se voir comme un programme, et vice-versa.
- Concepts récurrents: publication - abonnement, MVC
- XML Schema
- autres langages de Schema: Schematron, Relax
- usages: validation, génération de code, de
formulaires, de requêtes
- les 5 façons de traiter du XML par programme
- DOM
- DOM avec navigation en XPath - Xerces, Jaxen
- évènements DOM
- les nouveautés DOM3
- SAX
- filtres : comment transformer de très gros
documents
- générateurs d'évènements :
comment utiliser des parsers open source pour XML-iser toutes sortes de
documents structurés (journaux, courriers, ...)
-
- XSLT 2.0 et XQuery avec Saxon et eXist
- Conception de transformations XSLT: modèle
copie-tout, modèle requête, modularisation, variables
- appeler XSLT à partir de Java, et l'inverse
- XQuery, le tout dernier langage du W3C, permet à
la fois de remplacer la complexité de XSLT
- bases de données XML natives
- standard XML:DB et XUpdate
- eXist, Xindice, Tamino
- liaison (binding) entre XML et autres données
- Castor (classes Java, JDBC, LDAP), XMLBeans; JAXB,
XMLEncoder
-
- éditeurs XML
- utilitaires XML : XML diff, etc
- Génération pages Web: architectures
données-patron-présentation
- Cocoon
- langage Xquery et extension Web avec eXist: une alternative
à PHP et JSP
- Génération pages Web: paradigme MVC
- Services Web en pratique
- Axis de apache.org
- XML-RPC
JBoss, un serveur d'application Java libre
- rappels sur EJB
- rappels sur servlets
- Ant, outil de construction
- utilisation d'IDE libres avec plugin JBoss : Eclipse, NetBeans
- l'arborescence JNDI
- déploiement