Développer une application en Groovy et maîtrisez les fondamentaux du framework RAD Grails
Prochaines sessions
Programme
Introduction à Groovy
- Présentation de Groovy
- Groovy vs Java
- SDK Groovy
- Compilation Groovy
- Installer Groovy
Classe & POGOs
- Groovy Beans
- POJO vs POGO
- Passer de Java à Groovy
Bases du langage
- Types
- Opérateurs :
- Redéfinition des opérateurs
- Chaines de caractères :
- String
- GString
- Multiline String/Gstring
- Slashy Strings
- Collections
- Closures :
- Définition
- Passer une closure en paramètre d’une méthode
- Assigner une closure à une variable
- Ajouter des paramètres à une closure
- La variable “it”
- Utiliser une méthode d’instance comme une closure
- Manipuler sur les collections/maps avec une closure
- Les propriétés d’une closure
- this, delegate, owner dans une closure
Travailler avec Groovy
- Coercition de type avec Groovy
- == en Groovy
- Naviguer dans des objets sans craindre “null”
- Opérateur Elvis
- Manipuler des expressions régulières
- Opérateur de propagation
- Opérateur “as”
- Les APIs utiles de Groovy
- Intégrer Groovy dans du code Java
Métaprogrammation avec Groovy
- Dynamique vs Statique
- Le MOP (Meta Object Protocol) de Groovy
- EMC (ExpandoMetaClass)
- EMC & Hooks
- Pattern Intercept-Cache-Invoke
Annotations Groovy
- @Singleton, @Delegate, @Immutable, @PackageScope, @InheritConstructors, …
- @Canonical, @TupleConstructor, @EqualsAndHashCode, @ToString
- @TimedInterrupt, @ThreadInterrupt
- @CompileStatic, @TypeChecked
Tests avec Groovy
- GroovyTestCase
- Groovy et JUnit 4
- Tester du code Java en Groovy
- Coercition de Map
- Coercition de Closure
- MockFor, StubFor
Introduction à Grails
- Qu’est-ce que Grails ?
- Pourquoi Grails ?
- Fondations de Grails
- Installer Grails
- Créer un projet Grails
- Anatomie d’un projet Grails
- Configurations par défaut
- Commandes utiles
- Les environnements de développement
Grails pour faire du CRUD
- Créer une entité métier
- Créer un jeux de données initial
- Générateur statique
- Générateur dynamique
Entités métiers
- Principe des ORMs
- GORM :
- Différences avec Hibernate
- Conventions
- Configurations
- Mappings
- Contraintes
- Messages d’erreurs
- Opérations CRUD
- Requêtage (dynamique, par critères, hql, …)
- Tests des entités métiers
Contrôleurs Web
- MVC avec Grails
- Créer un contrôleur
- Redirect, Render, Return
- Objets implicites
- Répondre avec du JSON, XML
- Routage
- Objets Command
- Validation des contraintes
- Travailler avec les erreurs
- Différents scopes
- Intercepteurs
- Filtres
Vue Grails
- GSP (Groovy Server Pages)
- Tags standards
- Créer un Tag
- Layouts
- Templates
- AJAX
- Formulaires
Services
- Architecture applicatives Grails et la place des services
- Gérer les transactions
- Injection de dépendance
Plugins Grails
- Les points d’extension
- Créer un plugin
- Configurer Grails à l’exécution
- Travailler avec des plugins