KDO : un nouveau système de génération

Le système actuel : les « transformers » dans SCENARIbuilder

Les forces

  • Un « framework » puissant et bien intégré dans SCENARIbuilder

  • Une approche déclarative « no-code » simple et rapide, avec un fort niveau d'abstraction

  • Une approche complémentaire « free », programmatique pour des besoins spécifiques et avancés

Les faiblesses

  • Difficile de comprendre lorsqu'un problème survient

  • Pas d'environnement de debug pas à pas

  • Une courbe de montée en compétence lente

  • L'approche déclarative « no-code » repousse les profils développeurs

De 1999 à 2024, quelques évolutions technologiques😀

Une complexification des rendus html+css+js : vers de véritables applications web, fini le site web html en mode « tourne-pages ».

  • Les publications sont de plus en plus interactives et responsives en exploitant Javascript

  • Le niveau d'abstraction des transformers de SCENARIbuilder perd en pertinence

  • Le ratio se dégrade entre transformers standards et codes free (XSLT, Xpath, ...)

Il y a 25 ans, Xpath, XSLT étaient révolutionnaires !

Mais :

  • pas d'environnement de debug pas à pas

  • pas de typage fort pour l'aide au codage (auto-completion) et faciliter la maintenance

2 mondes hermétiques entre le déclaratif et le programmatique

  • Java : un langage typé, et d'excellents IDE, mais impossible de produire dans une approche simple et déclarative une structure XML ou HTML

  • XSLT : une approche simple et déclarative pour produire une structure XML ou HTML, mais un langage programmatique pauvre et mal instrumenté

Kotlin : l'astuce syntaxique qui unifie ces 2 mondes

  • Une fonction passée en dernier paramètre peut-être écrite en dehors des parenthèses encadrantes

  • Une syntaxe épurée pour écrire une fonction sans paramètre

  • miracle : dans l'environnement Java, on peut enfin imbriquer du déclaratif et du code de façon lisible et performante !

Le nouveau système « Kdo »

Principes

  • Les items .model de SCENARIbuilder sont automatiquement et instantanément modélisés en classes Kotlin

  • Un item de type .generator dans le modèle permet de relier le code Kotlin au modèle Scenari

  • Pour exécuter une génération, une classe Kotlin du générateur est instanciée et appelée avec en paramètres le contexte de la génération (accès à l'atelier...)

  • Une génération peut être appelée pour produire une génération statique et/ou dynamique (page par page)

Mise en œuvre

  • Activation de l'extension KDO dans le modèle de l'atelier

  • Déclaration d'un projet Kotlin dans l'IDE Intelli-J : les classes Kotlin représentant le modèle documentaire doivent apparaitre

  • Création d'un item `.generator` qui va pointer une classe de demarrage de la génération

Aperçu de KDO

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.