ToulouseJUG - REX Flex, Spring & Agilité

Preview:

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

Citation preview

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

Nicolas Deverge – Bert Poller* Et des chats

>qui sommes-nous ?

Nicolas – Architecte Java, Agiliste

twitter.com/ndeverge

Bert – Architecte Java

skype: bpoller

>contexte

• Diatta Consulting

• Ingénierie en restauration collective

>architecture client

• Flex – On n’est pas expert

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

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

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

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

• Découpage en modules

>architecture client

• Flex – On n’est pas expert

• PureMVC ++

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

• Découpage en modules

• Remoting avec BlazeDS

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

>architecture client/ Agilité

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

>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)

>architecture serveur

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

>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

>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

>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

>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

DAO

Service

Façade

BDDD

om

ain

DTO

BlazeDS

>architecture serveurFlyway : - initialisation du schéma bdd

- migration des données

>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')");

}

}

>architecture serveur/ Agilité

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

>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

>scrum/ Agilité

>scrum/ Agilité

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

>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

>build

>build

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

>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

>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

>copyright

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