Fluent inter­face are evil


  1. Fluent Inter­faces break Encap­su­la­tion
  2. Fluent Inter­faces break Deco­ra­tors (and some­times Compo­si­tion)
  3. Fluent Inter­faces are harder to Mock
  4. Fluent Inter­faces make diffs harder to read
  5. Fluent Inter­faces are less readable (perso­nal feeling)
  6. Fluent Inter­faces cause BC breaks during early deve­lop­ment stages

Fluent Inter­face are Evil

J’ai parfois l’im­pres­sion d’être dans les dino quand je me bats contre cette mode alors je suis heureux de voir ne pas être le seul.

Ce type d’écri­ture est juste magique pour créer des filtres succes­sifs, essen­tiel­le­ment dans les objets de construc­tion (buil­der).

Pour tout le reste, c’est juste un faux raccourci d’écri­ture. On casse beau­coup de choses pour gagner quelques carac­tères. Le plus souvent on ne les gagne pas vrai­ment puisqu’il faut bien penser à faire le return $this/self dans la méthode appe­lée et à gérer correc­te­ment l’in­den­ta­tion dans la méthode appe­lante.

 


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.