Un jeu de tennis qui sent (à peu près) bon

Les software crafters de Lyon

@saby_nastasia

  • Sujets
  • Woody Zuill - Workshop - tiny.cc/pcbs2y​
  • 45 minutes sur un KATA pour produire du code (TDD/Pair programming)

  • Debrief

  • Puis comment l'améliorer (lui donner une bonne odeur)

Entière description : http://codingdojo.org/kata/Tennis/

ETAPE 1 : MARQUER UN POINT AUGMENTE LE SCORE CORRECTEMENT

En tant qu'utilisateur, je veux que le score augmente quand un joueur marque un point

  • Etant donnée le score 0:0
    Quand le serveur marque un point
    Alors le score est 15:0

  • Etant donnée le score 15:15
    Quand le receveur marque un point
    Alors le score est 15:30

  • Etant donnée le score 30:30
    Quand le serveur marque un point
    Alors le score est 40:30

 

http://agilekatas.co.uk/katas/Tennis-Kata

C'est quoi un bad smell ?

Kent beck et Martin fowler se rencontrENT

Corriger ce qui existe déjà

T'étais possédé quand
 t'as fait ce code ?

Euh ...

Un bad smell nommé

Des méthodes pour y remédier

Les bloaters - ce qui est trop gros

Large class : classe trop grosse

 

Extraire une classe, sous-classe ou superclasse

Primitive obsession : trop de primitives

 

  • Créer une classe
  • Liste de paramètres en primitive => objet
  • Array => objet
  • Rendre compte de la valeur unitaire d'un groupe de variables

Object-Orientation abusers - ce qui abuse de la Programmation orientée objet

Dispensables - ce qui n'est pas nécessaire

Commentaires : des commentaires non nécessaires

 

Le meilleur commentaire est un bon nom de méthode ou de classe.

 

  • Extraire des méthodes
  • Extraire des variables
  • Renommer des méthodes et variables

Code dupliqué : du code pareil ou qui se ressemble

 

  • Extraire des méthodes
  • Remonter la méthode ou champ dans une super classe
  • Form template method

Zoom Form Template method

Zoom Form Template method

Change-preventers- ce qui Empêche les changements

Divergent changes

1 changement dans une classe entraîne plein de petits changements dans plusieurs méthodes de cette classe

 

  • Définir le comportement commun et le mettre à part dans une méthode ou classe
  • Peut-être extraire une sous-classe ou super-classe

COuplers-Trop de couplage

Bloaters (trop gros)

Large classe

Primitive obsession

 

Dispensables

Commentaire

Code dupliqué

 

Divergent change (ce qui empêche le changement)

Divergent change

 

https://sourcemaking.com/refactoring

 

 

Ressources/Liens

  • Refactoring: Improving the design of existing code (Martin Fowler)
  • Source Making (site et cours en ligne)

Merci