SlideShare une entreprise Scribd logo
1  sur  39
Présentation de Grails Un Framework de développement Web agile page 2 N. ADOUANI - février 10
Sommaire ,[object Object]
Un peu d’histoire
Architecture, principes et composantes de Grails
Grails et les méthodologies agiles
Démos
Conclusionspage 3 N. ADOUANI - février 10
Introduction N. ADOUANI - février 10 page 4 Grails est un Framework de développement  Web, type MVC, dit de « haute productivité ».  Il est construit autour de technologies qui  ont fait leurs preuves dans l’écosystème  Java/J2ee tel que Spring, Hibernate, Sitemesh et autres. Il est basé sur le langage dynamique Groovy et sur certains paradigmes du génie logiciel comme « la configuration basée sur les conventions »
Objectifs L’objectif de cette présentation est : ,[object Object]
de faire un rapprochement entre Grails et les méthodologies agiles
montrer des exemples d’intégration de Grails avec les Frameworks AJAX, FLEX, etc…N. ADOUANI - février 10 page 5
Un peu d’histoire page 6 N. ADOUANI - février 10
Un peu d’histoire N. ADOUANI - février 10 page 7 Graeme Rocher : le fondateur du projet Grails Guillaume Laforge: le chef du projet Groovy Ils ont créé la société G2One qui a été rachetée par SpringSource en Novembre 2008
Un peu d’histoire N. ADOUANI - février 10 page 8 Grails = Pluriel de « grail » en anglais = Les Graals, d’où le logo du Framework Grails = Groovy on Rails par analogie au Framework Ruby on Rails
Grails, plus de détails page 9 N. ADOUANI - février 10
L’architecture page 10 Le langageGroovy Plugin xfire Plugin CMS Plugin GAE Plugin Flex Plugin jQuery Plugin Acegi Plugin Maven Plugin CouchDB Grails Plugin iWebKit Plugin Searchable Plugin RemotePagination Plugin Quartz HSQL db JUnit Jetty Log4j Java EE Spring Hibernate SiteMesh Le langage Java Le java Development Kit (JDK) La Java Virual Machine N. ADOUANI - février 10
Principes de Grails (1) ,[object Object]
Scaffolding (génération de code)
Tests unitaires
Les pluginsN. ADOUANI - février 10 page 11
Principes de Grails (2) Convention over configuration ,[object Object]
Il est aussi possible d’utiliser des fichiers de config si le besoin se fait sentir
Exemple: le nom d’une classe persistante est identique au nom de la table correspondante dans une base de données.N. ADOUANI - février 10 page 12
Principes de Grails (3)Scaffolding ,[object Object]
Cette technique est souvent utilisée pour générer les pages CRUD des applications selon le modèle MVC
Il existe deux types de scaffolding en Grails:
Dynamique : les contrôleurs et les vues sont générés en  « runtime » (au cours de l’exécution) =>  la modification du modèle ne demande pas de régénération de code
Statique : le code source des contrôleurs et des vues est généré lors du développement=> la modification du modèle métier nécessite une régénération de codeN. ADOUANI - février 10 page 13
Principes de Grails (4)Tests unitaires ,[object Object]
Grails fait la différence entre:
Tests unitaires: des tests qui n’ont aucune dépendance, notamment vers la base de données, le conteneur de Servlet, les interactions HTTP, les WS s’il y en a…=> nécessité d’utiliser des objets mock (bouchons)
Tests d’intégration: des tests qui ont accès à tout l’environnement de l’application (accès à la base de données, à la session, la requete HTTP…
Tests fonctionnels automatisés de l’IHM, type Selenium ou FitNessN. ADOUANI - février 10 page 14
Principes de Grails (5)Système de plugins ,[object Object]
Sécurité: Acegi
Mapping Objet Relationnel: JPA et JDO
Web Service : xfire, Spring WS
Web Flow : SpringWebFlow

Contenu connexe

Tendances

Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門辰徳 斎藤
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tipsikeyat
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)JPCERT Coordination Center
 
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...Netwalker lab kapper
 
Ansible AWXを導入してみた
Ansible AWXを導入してみたAnsible AWXを導入してみた
Ansible AWXを導入してみたsugoto
 
Ansible 2.10 と Collection
Ansible 2.10 と CollectionAnsible 2.10 と Collection
Ansible 2.10 と Collectionakira6592
 
Qlik composeのインストール
Qlik composeのインストールQlik composeのインストール
Qlik composeのインストールQlikPresalesJapan
 
Kubernetes超入門 with java
Kubernetes超入門 with javaKubernetes超入門 with java
Kubernetes超入門 with javaYasunari Tanaka
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
Azure reliability v0.2.21.0630
Azure reliability v0.2.21.0630Azure reliability v0.2.21.0630
Azure reliability v0.2.21.0630Ayumu Inaba
 
グラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectivesグラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectives昌桓 李
 
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστών
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστώνΗ μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστών
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστώνNikos Stefanoudakis
 
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜infinite_loop
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
Hinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現についてHinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現についてHinemos
 
リアルタイムゲームサーバーの ベンチマークをとる方法
リアルタイムゲームサーバーの ベンチマークをとる方法リアルタイムゲームサーバーの ベンチマークをとる方法
リアルタイムゲームサーバーの ベンチマークをとる方法モノビット エンジン
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要Google Cloud Platform - Japan
 
超簡単!Apache SubverisonをWindows Serverにインストール
超簡単!Apache SubverisonをWindows Serverにインストール超簡単!Apache SubverisonをWindows Serverにインストール
超簡単!Apache SubverisonをWindows ServerにインストールShin Tanigawa
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Noriyoshi Shinoda
 

Tendances (20)

Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips知っておきたいSpring Batch Tips
知っておきたいSpring Batch Tips
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
 
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作   Beginner for UserLAnd a...
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
 
Ansible AWXを導入してみた
Ansible AWXを導入してみたAnsible AWXを導入してみた
Ansible AWXを導入してみた
 
Ansible 2.10 と Collection
Ansible 2.10 と CollectionAnsible 2.10 と Collection
Ansible 2.10 と Collection
 
Qlik composeのインストール
Qlik composeのインストールQlik composeのインストール
Qlik composeのインストール
 
入門Ansible
入門Ansible入門Ansible
入門Ansible
 
Kubernetes超入門 with java
Kubernetes超入門 with javaKubernetes超入門 with java
Kubernetes超入門 with java
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Azure reliability v0.2.21.0630
Azure reliability v0.2.21.0630Azure reliability v0.2.21.0630
Azure reliability v0.2.21.0630
 
グラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectivesグラフデータの視覚化ツールーTom Sawyer Perspectives
グラフデータの視覚化ツールーTom Sawyer Perspectives
 
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστών
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστώνΗ μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστών
Η μνήμη του υπολογιστή, τα αποθηκευτικά μέσα και τα είδη υπολογιστών
 
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
大規模負荷テストの負荷かけ手法とトラブルシュート 〜JMeterとうまく付き合う方法〜
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
Hinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現についてHinemosによる初期構築~障害検知自動復旧システムの実現について
Hinemosによる初期構築~障害検知自動復旧システムの実現について
 
リアルタイムゲームサーバーの ベンチマークをとる方法
リアルタイムゲームサーバーの ベンチマークをとる方法リアルタイムゲームサーバーの ベンチマークをとる方法
リアルタイムゲームサーバーの ベンチマークをとる方法
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
超簡単!Apache SubverisonをWindows Serverにインストール
超簡単!Apache SubverisonをWindows Serverにインストール超簡単!Apache SubverisonをWindows Serverにインストール
超簡単!Apache SubverisonをWindows Serverにインストール
 
Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)Let's scale-out PostgreSQL using Citus (Japanese)
Let's scale-out PostgreSQL using Citus (Japanese)
 

En vedette

Groovy presentation.
Groovy presentation.Groovy presentation.
Groovy presentation.Infinity
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovyguest6e3bed
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation GroovyJS Bournival
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in GrailsPeter Ledbrook
 
Família escola.13-14ppt
Família escola.13-14pptFamília escola.13-14ppt
Família escola.13-14pptROSARIO V
 
Paris grands espaces 1900
Paris grands espaces 1900Paris grands espaces 1900
Paris grands espaces 1900lys167
 
Fluctuat nec mergitur
Fluctuat nec mergiturFluctuat nec mergitur
Fluctuat nec mergiturfrancesnora
 
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...LinuQ
 
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Gilles Martin
 
Internet mobile : percée, disparités
Internet mobile : percée, disparitésInternet mobile : percée, disparités
Internet mobile : percée, disparitésGérard Marquié
 
Planification comment faire tenir tout ensemble
Planification    comment faire tenir tout ensemblePlanification    comment faire tenir tout ensemble
Planification comment faire tenir tout ensembleAkobe Jean Stanislas Akobe
 
Moteur frein aluminium
Moteur frein aluminiumMoteur frein aluminium
Moteur frein aluminiumEuropages2
 
Entrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEntrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEduardo Zolezzi
 
Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1edwindelgado75
 
Macroeconomía 1
Macroeconomía 1Macroeconomía 1
Macroeconomía 1Luz García
 

En vedette (20)

Groovy presentation.
Groovy presentation.Groovy presentation.
Groovy presentation.
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Dynamic Languages
Dynamic LanguagesDynamic Languages
Dynamic Languages
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Introduction to Grails
Introduction to GrailsIntroduction to Grails
Introduction to Grails
 
Application Architectures in Grails
Application Architectures in GrailsApplication Architectures in Grails
Application Architectures in Grails
 
Família escola.13-14ppt
Família escola.13-14pptFamília escola.13-14ppt
Família escola.13-14ppt
 
Paris grands espaces 1900
Paris grands espaces 1900Paris grands espaces 1900
Paris grands espaces 1900
 
Fluctuat nec mergitur
Fluctuat nec mergiturFluctuat nec mergitur
Fluctuat nec mergitur
 
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
Présentation LinuQ "Ouverture des données à la ville de Québec : approche et ...
 
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
Ma présentation à la conférence des Echos sur la mobilité : Les données mais ...
 
Internet mobile : percée, disparités
Internet mobile : percée, disparitésInternet mobile : percée, disparités
Internet mobile : percée, disparités
 
Enseignants
EnseignantsEnseignants
Enseignants
 
Planification comment faire tenir tout ensemble
Planification    comment faire tenir tout ensemblePlanification    comment faire tenir tout ensemble
Planification comment faire tenir tout ensemble
 
Moteur frein aluminium
Moteur frein aluminiumMoteur frein aluminium
Moteur frein aluminium
 
Entrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad PerúEntrevista EZ Revista Electricidad Perú
Entrevista EZ Revista Electricidad Perú
 
Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1Presentación trabajo colaborativo_wiki9_grupo1
Presentación trabajo colaborativo_wiki9_grupo1
 
Présentation congrès 2013
Présentation congrès 2013Présentation congrès 2013
Présentation congrès 2013
 
Festival Coriolis
Festival CoriolisFestival Coriolis
Festival Coriolis
 
Macroeconomía 1
Macroeconomía 1Macroeconomía 1
Macroeconomía 1
 

Similaire à Grails Un Framework Web Agile

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Javatcouery
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJsRadhoueneRouached
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdfimenhamada17
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaPrésentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaZenika
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 

Similaire à Grails Un Framework Web Agile (20)

#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Google App Engine For Java
Google App Engine For JavaGoogle App Engine For Java
Google App Engine For Java
 
jQuery vs AngularJS
jQuery vs AngularJS jQuery vs AngularJS
jQuery vs AngularJS
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Introduction au Framework AngularJs
Introduction au Framework AngularJsIntroduction au Framework AngularJs
Introduction au Framework AngularJs
 
Prezentare ASP.Net.pptx
Prezentare ASP.Net.pptxPrezentare ASP.Net.pptx
Prezentare ASP.Net.pptx
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker[Tuto] Big datatrack : Web Tracker
[Tuto] Big datatrack : Web Tracker
 
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - ZenikaPrésentation Gradle au LyonJUG par Grégory Boissinot - Zenika
Présentation Gradle au LyonJUG par Grégory Boissinot - Zenika
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
Meet up sqli lyon 09-2015 - Gradle
Meet up sqli lyon 09-2015 - GradleMeet up sqli lyon 09-2015 - Gradle
Meet up sqli lyon 09-2015 - Gradle
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud AzureValtech - Décollage d’une plateforme digitale vers le Cloud Azure
Valtech - Décollage d’une plateforme digitale vers le Cloud Azure
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Gradle_ToulouseJUG
Gradle_ToulouseJUGGradle_ToulouseJUG
Gradle_ToulouseJUG
 

Grails Un Framework Web Agile