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

Stratégie de mise en place de revues de code

David
April 10, 2015

Stratégie de mise en place de revues de code

GitHub organise des revues de code. Google organise des revues de code. Finalement, la revue de code ne serait-elle pas incontournable pour améliorer la qualité d'un projet ?

Et si on faisait pareil sur notre projet ? Est-ce simple à mettre en oeuvre ? L'équipe jouera t'elle le jeu ? Quels outils utiliser ? Quels gains pour le projet ? Quel intérêt pour l'équipe ?

Cette présentation répondra à ces questions à travers mon retour d'expérience sur un projet nécessitant la mise en place de revues de code.

Devoxx France 2015

David

April 10, 2015
Tweet

More Decks by David

Other Decks in Programming

Transcript

  1. @dwursteisen #DevoxxFR #CodeReview if ("Settings".equals(method)) { Settings request = exchange.getIn().getBody(Settings.class);

    for (Element settingElement : request.elements()) { if (!users.contains(settingElement.getUsername())) { badUsers.add(settingElement.getUsername()); } } }
  2. @dwursteisen #DevoxxFR #CodeReview if ("Settings".equals(method)) { Settings request = exchange.getIn().getBody(Settings.class);

    for (Element settingElement : request.elements()) { if (!users.contains(settingElement.getUsername())) { badUsers.add(settingElement.getUsername()); } } }
  3. @dwursteisen #DevoxxFR #CodeReview if (!"Settings".equals(method)) { return; } Settings request

    = exchange.getIn().getBody(Settings.class); for (Element settingElement : request.elements()) { if (!users.contains(settingElement.getUsername())) { badUsers.add(settingElement.getUsername()); } }
  4. @dwursteisen #DevoxxFR #CodeReview private static final TO_BE_REPLACED = new char[]

    { '_', ','; '-'}; public static String normalize(final String string) { if (string == null) { return null; } String normalizedString = string; for (char charToReplace : TO_BE_REPLACED) { normalizedString = normalizedString.replace(charToReplace, ' '); } return normalizedString.trim(); }
  5. @dwursteisen #DevoxxFR #CodeReview private static final TO_BE_REPLACED = new char[]

    { '_', ','; '-'}; public static String normalize(final String string) { if (string == null) { return null; } String normalizedString = string; for (char charToReplace : TO_BE_REPLACED) { normalizedString = normalizedString.replace(charToReplace, ' '); } return normalizedString.trim(); } Remplace des caractères spéciaux par des espaces
  6. @dwursteisen #DevoxxFR #CodeReview private static final String PATTERN = "[_,-]";

    public static String trimSpecialCharacters(final String string) { if (string == null) { return null; } return StringUtils.trim(string.replaceAll(PATTERN, " ")); }
  7. @dwursteisen #DevoxxFR #CodeReview private static final String PATTERN = "[_,-]";

    public static String trimSpecialCharacters(final String string) { if (string == null) { return null; } return StringUtils.trim(string.replaceAll(PATTERN, " ")); } Remplace (également) des caractères spéciaux par des espaces
  8. @dwursteisen #DevoxxFR #CodeReview A Faire En cours Implémentée Terminée MNS-

    456 MNS-135 MNS- 265 Code review Code review Revue de code nécessaire
  9. @dwursteisen #DevoxxFR #CodeReview To: [email protected] Subject : Revue de code

    MNS-435 Salut ! J’ai regardé le code de la tâche MNS-435. Mes retours : Dans la class BookManagerAugmented, je pense que la variable toto, ligne 42 n’est pas très bien nommé. if (toto == null) { return false; } Que penses-tu de changer son nom par tata plutôt ? C’est mieux non ?
  10. @dwursteisen #DevoxxFR #CodeReview To: [email protected] Subject : Revue de code

    MNS-435 Salut ! J’ai regardé le code de la tâche MNS-435. Mes retours : Dans la class BookManagerAugmented, je pense que la variable toto, ligne 42 n’est pas très bien nommé. if (toto == null) { return false; } Que penses-tu de changer son nom par tata plutôt ? C’est mieux non ? Mauvaise Idée
  11. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { StringBuilder sb = new StringBuilder();

    sb.append("Deal ID is").append(id) .append(" and deal amount is ").append(amount) .append(". "); LOGGER.error(sb.toString()); throw new ValidationException("Price error. Check the price"); }
  12. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { StringBuilder sb = new StringBuilder();

    sb.append("Deal ID is").append(id) .append(" and deal amount is ").append(amount) .append(". "); LOGGER.error(sb.toString()); throw new ValidationException("Price error. Check the price"); }
  13. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { LOGGER.error("Deal ID is" + id

    + " and deal amount is " + amount + ". "); throw new ValidationException("Price error. Check the price"); }
  14. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { LOGGER.error("Deal ID is {} and

    deal amount is {}. ", id, amount); throw new ValidationException("Price error. Check the price"); }
  15. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { LOGGER.error("Deal ID is {} and

    deal amount is {}. ", id, amount); throw new ValidationException("Price error. Check the price"); }
  16. @dwursteisen #DevoxxFR #CodeReview if(Integer.ZERO.equals(amount)) { LOGGER.warn("Deal ID is {} and

    deal amount is {}. ", id, amount); throw new ValidationException("Price error. Check the price"); }