oserez-vous remplacer jpa par un micro-orm ?

25
@PierreLeresteux @youen_chene #MyBatisRocks Oserez vous remplacer JPA par un Micro ORM @PierreLeresteux / Dev @Masternaut @youen_chene / CTO @CreativeData_fr

Upload: pierre-leresteux

Post on 16-Jul-2015

325 views

Category:

Presentations & Public Speaking


0 download

TRANSCRIPT

@PierreLeresteux @youen_chene#MyBatisRocks

Oserez vous remplacer JPA par un Micro ORM

@PierreLeresteux / Dev @Masternaut@youen_chene / CTO @CreativeData_fr

Quelques trolls pourront se glisser dans cette présentation

https://www.flickr.com/photos/matthijs/119976788/sizes/l

DISCLAIMER

Aucun commiter JPA et Hibernate n’a été maltraité durant la préparation de cette présentation

@PierreLeresteux @youen_chene#MyBatisRocks

Oserez vous remplacer JPA par un Micro ORM

@PierreLeresteux / Dev @Masternaut@youen_chene / CTO @CreativeData_fr

@PierreLeresteux @youen_chene #MyBatisRocks

Qui sommes nous ?

@YourTwitterHandle@YourTwitterHandle@PierreLeresteux @youen_chene#MyBatisRocks

Comment on fait?

@PierreLeresteux @youen_chene #MyBatisRocks

Sur une vrai application

•4 ans de code.

•Application backoffice de 90 000 lignes.

• 12 développeurs ont participé :

• 40% de taux de rotations,

• connaissance moyenne de JPA,

• 5 ans d’XP en moyenne.

@PierreLeresteux @youen_chene #MyBatisRocks

Sur une vrai application

4000 req/sec50 utilisateurs / 80% de select

@PierreLeresteux @youen_chene #MyBatisRocks

Changer le modèle ?

•Dénormaliser.•MySQL -> NoSQL

•Bigbang :• Migration ?• Coût ?

@PierreLeresteux @youen_chene #MyBatisRocks

Changer l’ORM

• 41 réponses sur la ML des cast codeurs.

• Descendre dans les couches : JDBC.

• Recode ton ORM maison.

• JDBC template.

• JOOQ :create.selectFrom(BOOK) .where(BOOK.PUBLISHED_IN.eq(2011)) .orderBy(BOOK.TITLE)

@YourTwitterHandle@YourTwitterHandle@PierreLeresteux @youen_chene#MyBatisRocks

MyBatis

@PierreLeresteux @youen_chene #MyBatisRocks

MyBatis

https://mybatis.github.io/mybatis-3/

16 membres + 16 contributeurs.Créé en 2001 (anciennement iBatis)

@PierreLeresteux @youen_chene #MyBatisRocks

Pourquoi MyBatis ?

JPA/Hibernate MyBatisCompétences du Développeur

Java, Criteria, HQL, SQL Java, SQL

Debug et logs Complexe Simple

Cache 2 niveaux 1 niveau

@PierreLeresteux @youen_chene #MyBatisRocks

Pourquoi éviter le SQL ?

https://twitter.com/yfain/status/457a604826398871553

@PierreLeresteux @youen_chene #MyBatisRocks

Tout n’est pas un clou

https://plus.google.com/+GavinKing/posts/LGJU1NorAvY

@PierreLeresteux @youen_chene #MyBatisRocks

Maitriser le framework

https://twitter.com/blep/status/570608806427824129

Conférence Vendredi 15h10 - Neuilly 252 AB

@PierreLeresteux @youen_chene #MyBatisRocks

MyBatis

Show me the code !

@YourTwitterHandle@YourTwitterHandle@PierreLeresteux @youen_chene#MyBatisRocks

Conseil de migration

@PierreLeresteux @youen_chene #MyBatisRocks

Refactorer au fur et à mesure

Long et difficile.

Attention aux regressions !

DB Setup, DB Setup, DB Setup, DB Setup…http://dbsetup.ninja-squad.com/

@PierreLeresteux @youen_chene #MyBatisRocks

Apprenez votre RDBMS

Les requêtes

Les indexes

@PierreLeresteux @youen_chene #MyBatisRocks

Partir sur une V2

Maîtrise des risques

Isolation des frameworks

Plus itératifs

@YourTwitterHandle@YourTwitterHandle@PierreLeresteux @youen_chene#MyBatisRocks

Le développeur doit prendreses responsabilités

Les requêtes

Les indexes

26 Novembre 2015

@YourTwitterHandle@YourTwitterHandle@PierreLeresteux @youen_chene#MyBatisRocks

Q & A