Offre de formation - Jean Marc Vanel
© 2003-2005 Jean-Marc Vanel e-mail: Envoyer vos commentaires - Ma page d'accueil
Dernière mise à jour:

Je peux donner ces formations en Français ou en Anglais, dans le monde entier; elles sont personalisables en fonction de votre projet et de vos besoins précis (voir offre de conseil).
Questionnaire avant formation

Catalogue Formations

Une présentation avec une vue graphique des dépendances entre modules: cursus.sxi - cursus.ppt

Liste de formations données récemment :
Formations nouvelles
Séminaires NOUVEAU
Sessions de 1 jour pour introduire des développeurs expérimentés à des sujets techniquement mûrs mais encore mal connus :

Formations en préparation
Formations en projet

Les cycles

Détails formations

Voici les détails mes formations, pour celles qui n'ont pas encore une page Web à part.

Développement logiciel avancé

Lors de formations sur des langages, ou des technologies comme Design Patterns, je me suis aperçu que des besoins plus urgents existaient parmi les stagiaires, par rapport à des critères productivité et projet.
J'ai donc conçu cette formation, axée sur les bonnes pratiques de développement. Il s'agit d'améliorer la productivité et la qualité en développement logiciel, ceci à travers des outils (eclipse), des méthodologies et de la conception (XP, refactoring, Design Patterns), et les apports de l'open source et de ses communautés.

Le formateur, J.M. Vanel, a la passion du développement bien fait, vite fait, et qui correspond aux réelles attentes. Il a une expérience de 20 ans en développement (scientifique, finance, bioinformatique, e-commerce, ...), aussi bien en SSII, éditeur ou SI. Il sera heureux de vous faire partager tous les trucs, petits et grands, récents et anciens, de ce noble métier. Il sait que le meileur développement c'est celui qu'on ne fait pas, car on intègre de l'existant. Et en 2004 l'existant ce sont des dizaines de milliers de projets open source.

Axée sur Java, mais pouvant être adapté aux autres grands langages, cette formation aborde les outils incontournables du développement Java: eclipse, ant, JUnit, jikes, PMD. Les autres outils d'usage plus général: CVS, outils shell, gvim, gcc, cygwin, doxygen sont présentés d'une maniére pratique (voir plus bas Les outils du développeur). L'autre volet concerne des méthodologies. La référence, l'ouvrage "Refactoring: Improving the design of existing code" est un grand classique qui montre comment on peut faire moins de conception en amont, et plus en aval. Cela va avec le style développement eXtreme Programming (XP), on l'on met l'accent sur les tests, le codage, la programmation par paire, etc.

Après la formation, vous saurez répondre à ces questions :
Voir aussi ci-dessous "Maintenance logicielle: outils et méthodes", qui présente un thème voisin, mais axé sur la maintenance plus que sur le développement.

Maintenance logicielle: outils et méthodes

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 :

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...

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:

Développement XML - Java avancé

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.

JBoss, un serveur d'application Java libre

UML

Formation 2 jours (ou plus avec exercices ) : UML partie 1 , UML partie 2 ( en format OpenOffice 2.0 )
Compléments :

Cocoon

Présentation (OpenOffice), exemples, liens: http://jmvanel.free.fr/cocoon/

Cocoon, un projet de la fondation Apache, est un moteur de publication Web centré XML. Il peut récupérer des sources de données variées (fichiers et URL XML et HTML, SQL, LDAP, bases XML, etc). Il est particulièrement adapté pour la publication sur des terminaux variés (navigateurs classiques, terminaux WAP, PDF, etc) en utilisant des feuilles de style XSLT. Il y a aussi des extensions pour faire des portails, de l'internationalisation, de la génération d'images, etc. C'est en fait une alternative à Struts. De plus avec la base de données XML eXist (http://exist-db.org/) qui intègre Cocoon, on peut utiliser le tout dernier langage du W3C, XQuery, qui permet à la fois de remplacer la complexité de XSLT pour requêtes et agrégation, et aussi de developper des pages Web dynamiques.

C'est une Webapp au sens Java 2 Entreprise Edition, c'est à dire que Cocoon s'installe très facilement dans n'importe quel conteneur de servlets, tel que Tomcat.
L'architecture favorise la séparation de la logique métier, du contenu, et de la présentation.
La configuration est un fichier XML, et on peut faire les tâches courantes sans écrire une ligne de Java. Cependant il y a des interfaces Java bien documentées pour étendre Cocoon en créant ses propres composants.

Il y a une communauté d'utilisateurs et de développeurs, plusieurs portails consacrés à Cocoon, de nombreux sites qui tournent, et plusieurs livres.

La formation dure 3 jours, et suppose connu un minimum sur XML, XSLT, HTML, mais pas nécessairement  Java.

Plan de la formation

Cocoon, une application Web (Webapp)
architecture externe de Cocoon
utilisation simple de Cocoon
la configuration (sitemap)
les 20 générateurs
les 16 transformeurs
les 14 transformeurs
Paramètres du pipeline
Actions, sélecteurs
Pipelines non linéaires
XSP, logicsheets
formulaires
architecture interne de Cocoon
compléments sur XSLT
passage d'une génération statique des pages à une génération dynamique avec Cocoon
intégration de bases XML ou relationnelles
les filtres SAX

Les outils du développeur

On voit trop souvent des développeurs qui se limitent à utiliser Visual C++ ou UltraEdit, alors qu'il convient d'utiliser pour chaque tâche le bon outil.

ant, JUnit, CVS, Doxygen, eclipse(refactoring, plugins, config.), devC++, Anjuta, KDevelop, gvim, cygwin, jikes, gcj, analyseurs de sources (PMD), JDepend (analyses de dépendance), ArgoUML, XML (éditeurs, valideurs, transformeurs), traducteurs de source, analyse des différences (vim, kompare, winmerge), analyse de performances (JFluid , JMeter)

Programme formation CVS par J.M. Vanel 

La bureautique open source

OpenOffice: connection avec les bases de données, éditeurs HTML (Mozilla, Amaya).

Ant

Ant, un projet de la fondation Apache, est un outil d'automatisation de la construction d'applications, comme le vénérable make. Il est écrit en Java, et son fichier de configuration est en XML. Le principe, tout comme make, est de (re)construire une série de cibles dépendant les unes des autres, en évitant de reconstruire ce qui est à jour. On utilise pour définir les dépendances les 75 tâches de base, lesquelles couvrent toutes les tâches systèmes, les compilations et installations dans les principaux langages. Contrairement à make, Ant n'utilise pas de commandes shell; en fait Ant est encore plus indépendant du système d'exploitation que Java lui-même. De plus, comme tout se fait dans la même machine virtuelle,  Ant est très rapide. Toutes ces qualités entraînent son utilisation dans tous les projets Java importants. Mais Ant  n'est pas limité à la construction d'application et à Java. Il peut déployer, télécharger des resources, piloter un ensemble de transformations XSLT, etc. Je l'ai utilisé pour construire des sites Web en pages statiques à partir de document bureautiques (projet XMLPublication)

XML : Introduction technique

PHP

Cette première approche permettra d'écrire des pages simples et d'installer des sources venant du Web.

Linux Apache

Il s'agit de donner une vue d'ensemble et un minimum de survie pour pouvoir travailler.

Formation Cocoon: la liste complète des "transparents"

Cocoon : un environnement serveur Web centré XML -- Jean-Marc Vanel - février 2003
Petit sondage
Concepts Cocoon – 0
Concepts Cocoon – 1 – pipeline
Concepts – 2 – Verbatim par défaut
Concepts – 3 Assortir requête HTTP=>chaîne
Concepts – 3 Assortir requête HTTP=>chaîne
Concepts 4 - Separation of Concerns
Générateurs – catégories
Générateurs
Transformeurs – catégories
Transformeurs
Pourquoi SQL est un transformeur?
Sérialiseurs – catégories
Sérialiseurs
Pipeline: diagramme de séquence
Assortir requête HTTP=>chaîne – détails
Assortir requête + paramètres => chaîne
Paramètres du pipeline
La configuration (sitemap)
sitemap.xmap : vue d'ensemble
sitemap.xmap : les composants
Les pipelines – configuration – 1
Les pipelines – configuration – 2
Les pipelines – détail configuration
Si une chaîne linéaire ne suffit pas? - 1
Si une chaîne linéaire ne suffit pas? - 2
Si une chaîne linéaire ne suffit pas? - 3
map:view (suite)
Protocoles et pseudo-
SAX – principe
Sélecteur
XSP – concept
XSP – structure
XSP – exemple
Logicsheet – concept
XSP – traitement par Cocoon
Initialisation d'une XSP + logicsheets
Logicsheet – définition
Logicsheet – déclaration
Logicsheet – utilisation
Logicsheets fournis avec Cocoon
Action – concept
Action – déclaration
Communication actions --> sitemap
Actions fournies avec Cocoon
XSP versus Action
Formulaires
Architecture interne de Cocoon
Initialisation d'un Composant Avalon
Dé/Ré-activer un Composant Avalon
Compléments sur XSLT – 1
Compléments sur XSLT – 2
Génération statique ou dynamique
Intégration de bases XML
Intégration de bases relationnelles
Les filtres SAX