Présentation du langage Groovy
La promesse de Groovy et ses cas d’usage
Caractéristiques du langage : Typage, Dynamicité, DSL, Annotations, programmation fonctionnelle
Les différences avec Java
Le SDK, les outils et intégration dans les IDEs
Gestion de dépendances avec Grape
Groovy et les tests
La documentation
Atelier
Installation et mise en place de l’IDE
La bases de Groovy
Base de la syntaxe (Commentaires, variable, Classe, mots-clés, opérateurs)
Structure d’un programme, Classe vs Script
Conventions de nommage et bonnes pratiques
Typage : Chaînes de caractère, Liste, Map
Programmation Orienté Objet (Classe, Interface, Constructeur, Héritage, ...)
Les Closure : Définition et utilisation dans un méthode, assignation dans une variable,méthode d’instance comme closure
Paramétrisation d’un closure, this, delegate et owner
Comparaison avec les lambda expression, Closure et DSL
Atelier
Mise en place de scripts et de programmes composés de plusieurs classes, Application des closure
Travailler avec Groovy
Opérateurs spécifiques de Groovy (Propagation, « as », Elvis, safe navigation)
Opérateur sur les collections
Opérateurs d’expression régulière
Principales APIs (Logging, Util, UI, XML, JSON, Sql, Servlet, Model)
Intégration avec Java
Gestion de dépendances avec Gape
Support de Groovy pour les tests, intégration avec JUnit
Atelier
Utilisation des opérateurs spécifiques, intégration avec un programme Java, Ecriture de cas de test
Méta-programming à l’exécution
Principes, le protocole métaobject (MOP), Types d’objet Groovy (POJO, POGO, Intercepteur)
Intercepteurs fournis par le langage, l’interface GroovyInterceptable
Classe méta personnalisée
ExpandoMetaClass, application aux tests
Les modules d’extension
Atelier
Développement d’une classe mét, Mocking via ExpandoMetaClass
Méta-programming à la compilation
Principes
Annotations de génération de code
Annotation pour les design patterns
Annotations de Logging
Annotations pour la concurrence
Directives de compilation