toulousejug - rex flex, spring & agilité
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 DevergeTRANSCRIPT
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/