Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Refactoring with Guava @ XKE

Refactoring with Guava @ XKE

You have just started a new project in a corporate and investment bank, and you have to improve quality and maintainability of an existing blotter application.

http://jlrigau.github.io/refactoring-with-guava/

Jean-Louis Rigau

September 04, 2013
Tweet

More Decks by Jean-Louis Rigau

Other Decks in Programming

Transcript

  1. * www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1

    53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris | Guava Java 1.6+ Expressivité Nombre de lignes Collections Fonctionnel Cache de 2nd niveau
  2. * www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1

    53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris | Guava Collections Approche fonctionnelle Transform Filter Immuabilité Nouvelles structures de données MultiMap MultiSet FluentIterable
  3. * | DSL fonctionnel Function Predicate www.xebia.fr | http://blog.xebia.fr |

    http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  4. * | Exemple Liste de tous les éléments pairs d’une

    liste multiplié par 2 public class IsPair implements Predicate<Integer> { public boolean apply(Integer elt) { return elt%2 == 0; } } public class By2 implements Function<Integer, Integer> { public Integer apply(Integer elt) { return elt*2; } } www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  5. * | Exemple Liste de tous les éléments pairs d’une

    liste multiplié par 2 final Predicate IS_PAIR = new IsPair(); final Function BY_2 = new By2(); Integer[] ints = {1, 2, 3, 4}; FluentIterable.from(ints) .filter(IS_PAIR) .transform(BY_2) .toImmutableList(); => {4,8} www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  6. * | Problématique Récursivité en SQL Mise à jour courante

    d’une requête complexe Volumétrie modérée www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  7. * | Contexte Blotter : liste de produits Visibilité variable

    avec règles complexes www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  8. * | Équipes et participants www.xebia.fr | http://blog.xebia.fr | http://techtrends.xebia.fr

    Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  9. * | Étape 1 Task Helper www.xebia.fr | http://blog.xebia.fr |

    http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  10. * | Étape 2 Blotter Service www.xebia.fr | http://blog.xebia.fr |

    http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris
  11. * | Étape 2 Blotter Service www.xebia.fr | http://blog.xebia.fr |

    http://techtrends.xebia.fr Telephone : 33 (0)1 53 89 99 99 | email : [email protected] | 156 bd Haussmann - 75008 Paris