toulousejug - rex flex, spring & agilité

31
Rex Flex Spring & Agilité* Toulouse JUG - 21 avril 2011 Nicolas Deverge Bert Poller * Et des chats

Upload: nicolas-deverge

Post on 01-Nov-2014

3.114 views

Category:

Technology


1 download

DESCRIPTION

Retour d'expérience sur un projet agile, avec les technos Flex, Spring, Hibernate, donné lors du ToulouseJug du 21/04/2011.Bert Poller & Nicolas Deverge

TRANSCRIPT

Page 1: ToulouseJUG - REX Flex, Spring & Agilité

Rex Flex Spring & Agilité*Toulouse JUG - 21 avril 2011

Nicolas Deverge – Bert Poller* Et des chats

Page 2: ToulouseJUG - REX Flex, Spring & Agilité
Page 3: ToulouseJUG - REX Flex, Spring & Agilité

>qui sommes-nous ?

Nicolas – Architecte Java, Agiliste

twitter.com/ndeverge

Bert – Architecte Java

skype: bpoller

Page 4: ToulouseJUG - REX Flex, Spring & Agilité

>contexte

• Diatta Consulting

• Ingénierie en restauration collective

Page 5: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client

• Flex – On n’est pas expert

Page 6: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

Page 7: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

• Codage Maison : Automapper VO<->DTO, Cache DTO

Page 8: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

• Codage Maison : Automapper VO<->DTO, Cache DTO

• Découpage en modules

Page 9: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

• Codage Maison : Automapper VO<->DTO, Cache DTO

• Découpage en modules

• Remoting avec BlazeDS

Page 10: ToulouseJUG - REX Flex, Spring & Agilité

Mediators

Vues*.mxml

VO

CommandsMediators Commands

ActionHandler/Actions

VO MappingGestion de notification

Gestion de modules

ProxiesProxiesAPI d’appels asynchrones

Remote ServicesRemote Services DTO

Présentation,Logique des vues et métier

Façade,Logique technique

Gestion dedonnées

Services d’appelau serveur (générés)

Appel directe

Notification de vue

Retour asynchrone

Notification

Page 11: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client/ Agilité

What’s hot ?•Graphisme vectoriel, animations•ActionScript et MXML simples à apprendre

Page 12: ToulouseJUG - REX Flex, Spring & Agilité

>architecture client/ Agilité

What’s hot ?•Graphisme vectoriel, animations•ActionScript et MXML simples à apprendre

What’s not ?•Temps de compilation•Refactoring assez limité•Adobe Flashbuilder 4 sous Windows et Mac (pas Linux)

Page 13: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

•Au début MDA (Xtext, Acceleo)•Spring 3 – IoC classique•Full Hibernate 3.6 - mapping en hbm.xml

Page 14: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

•Au début MDA (Xtext, Acceleo)•Spring 3 – IoC classique•Full Hibernate 3.6 - mapping en hbm.xml•Spring-Flex

•Intégration BlazeDS, Spring-Security, Log4j

Page 15: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

•Au début MDA (Xtext, Acceleo)•Spring 3 – IoC classique•Full Hibernate 3.6 - mapping en hbm.xml•Spring-Flex

•Intégration BlazeDS, Spring-Security, Log4j•Dozer : mapping domain <-> DTO

Page 16: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

•Au début MDA (Xtext, Acceleo)•Spring 3 – IoC classique•Full Hibernate 3.6 - mapping en hbm.xml•Spring-Flex

•Intégration BlazeDS, Spring-Security, Log4j•Dozer : mapping domain <-> DTO•DataProviders codés maison

Page 17: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

•Au début MDA (Xtext, Acceleo)•Spring 3 – IoC classique •Full Hibernate 3.6 - mapping en hbm.xml•Spring-Flex

•Intégration BlazeDS, Spring-Security, Log4j•Dozer : mapping domain <-> DTO•DataProviders codés maison•HSQLDB en dev+test, MySQL en prod

Page 18: ToulouseJUG - REX Flex, Spring & Agilité

DAO

Service

Façade

BDDD

om

ain

DTO

BlazeDS

Page 19: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveurFlyway : - initialisation du schéma bdd

- migration des données

Page 20: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur

en sql : et en java :

Flyway : - initialisation du schéma bdd- migration des données

import org.springframework.jdbc.core.JdbcTemplate;

import com.googlecode.flyway.core.migration.java.JavaMigration;

/**Example of a Java-based migration.*/

public class V1_2__Another_user implements JavaMigration {

public void migrate(final JdbcTemplate jdbcTemplate) throws Exception {

jdbcTemplate.execute("INSERT INTO test_user (name) VALUES ('Obelix')");

}

}

Page 21: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur/ Agilité

What’s hot ?•Flyway (migration de schéma bdd)•Data Provider (données métier, TU)

Page 22: ToulouseJUG - REX Flex, Spring & Agilité

>architecture serveur/ Agilité

What’s hot ?•Flyway (migration de schéma bdd)•Data Provider (données métier, TU)

What’s not ?•Mille feuilles•Xml a go go <-> @Entity + @AutoWired

Page 23: ToulouseJUG - REX Flex, Spring & Agilité

>scrum/ Agilité

Page 24: ToulouseJUG - REX Flex, Spring & Agilité

>scrum/ Agilité

What’s hot ?•Radiateur d’information (post-it)•Daily scrum•Revue de sprint•Gizmo

Page 25: ToulouseJUG - REX Flex, Spring & Agilité

>scrum/ Agilité

What’s hot ?•Radiateur d’information (post-it)•Daily scrum•Revue de sprint•Gizmo

What’s not ?•Rétrospective•Adoption du support informatique (GreenHopper)•Product owner proxy

Page 26: ToulouseJUG - REX Flex, Spring & Agilité

>build

Page 27: ToulouseJUG - REX Flex, Spring & Agilité

>build

What’s hot ?•Maven profiles•Intégration continue•Documentation intégrée (mvn site, umlGraphDoc)•Conception émergente

Page 28: ToulouseJUG - REX Flex, Spring & Agilité

>build/ Agilité

What’s hot ?•Maven profiles•Intégration continue•Documentation intégrée (mvn site, umlGraphDoc)•Conception émergente

What’s not ?•Adoption limitée de TDD•Pas assez de TU

Page 29: ToulouseJUG - REX Flex, Spring & Agilité
Page 30: ToulouseJUG - REX Flex, Spring & Agilité

>références

• Chats : lolcats.com, icanhascheezburger.com

• Tag cloud : www.tagxedo.com

• Diatta Consulting : www.diatta-consulting.com

• Flyway : code.google.com/p/flyway

• PureMVC : puremvc.org

• Spring Source : www.springsource.com

• Hibernate : www.hibernate.org

• UMLGraph : www.umlgraph.org

Page 31: ToulouseJUG - REX Flex, Spring & Agilité

>copyright

Présentation sous licence Creative Commons CC BY-NC 2.0creativecommons.org/licenses/by-nc/2.0/fr/