Les goûts et les odeurs

Nastasia Saby

Un code de qualité ? 

Une question dont la réponse est en devenir

C'est quoi un bad smell ?

Kent beck et Martin fowler se rencontrENT

Alternative classes with different interfaces

class Voiture
{
    function roule()
    {
      //Fait avancer le véhicule
    }
}
class Auto
{
    function avance()
    {
     //Fait avancer le véhicule
    }
}

Des méthodes pour y remédier

  • Move method : déplacement d'une méthode d'une classe à une autre
  • Move field : déplacement d'un champ d'une classe à une autre
  • Extract method : Extraction d'une méthode pour former une sous méthode
  • ...

Corriger ce qui existe déjà

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

Euh ...

divergences au sein de notre communauté de développeurs

JE CONSIDère qu'une méTHode ne doit pas excéder ?

1) 10 lignes

 

2) 20 lignes

 

3) Ca dépend, ça dépasse :)

 

4) Aucune importance

 

5) Autre

JE PRéfère ?

1) découper mes méthodes par un nom explicite

 

2) ne découper mes méthodes que si je suis absolument sûr qu'elles seront réutilisées et j'utilise des commentaires pour rendre mon code plus explicite

Le code propre, c'est facile

Certains

Le code s'est tuer

#code mort

Code dupliqué

#code dupliqué

Il est mort né

#speculative generality

Les choses sont parfois plus compliquées

LONG METHOD/LARGE class

Oui mais combien ?

LARGE CLASS VS LAZY CLASS

Euh ...

Les bad smells SE COMPLètent

Primitive obsession

$personne = ['nom' => 'Linda', 'age' => 19];
$nomPersonne = $personne['nom'];

Data class

class Personne
{
    protected $nom;
    protected $age;

    public function __construct(string $nom, int $age)
    {
        $this->nom = $nom;
        $this->age = $age;
    }
    
    public function getNom(): string
    {    
        return $this->nom;
    }

    public function getAge(): int
    {    
        return $this->age;
    }
}

Et DES CONFLITS PEUVENT APPARAÎTRE

LE commentaire

function roule()
{
    //Met le carburant
    DuCode

    //Met la clef
    DuCode
    
    //Demarre
    DuCode

    //Appuie sur la pedale
    DuCode
}
function roule()
{
    metLeCarburant();
    metLaClef();
    demarre();
    appuieSurLaPedale();   
}

Zone de conflits

En résumé COMMENT dépasser tout ça ?

EXPéRIENCE

Partage

BIENVEILLANCE

Ressources/Liens

échange/Questions ?

Merci

Les goûts et les odeurs(avec commentaires)

By nastasiasaby

Les goûts et les odeurs(avec commentaires)

  • 157

More from nastasiasaby