Limitez les arguments

Une méthode devrait toujours surveiller le nombre d'arguments qu'elle utilise car cela influera directement son nombre de cas d'utilisation ainsi que sa complexité.

Par exemple, la fonction suivante possède deux cas d'utilisation, cela signifie qu'elle peut être utilisée de deux façons différentes :

function bar($a = null) {}

Celle-ci possède 4 cas d'utilisation :

function bar($a = null, $b = null) {}

Et cette dernière en a 8 :

function bar($a = null, $b = null, $c = null) {}

Ce chiffre augmentera de manière exponentielle, le nombre de cas d'utilisation d'une méthode est étroitement lié à son nombre d'arguments.

Ajouter un argument supplémentaire à une méthode existante n'est donc pas anodin et devrait être pleinement considérée : n'y a-t-il pas une meilleure alternative ?

Tous ces cas d'utilisation rendront probablement la méthode difficile à comprendre et impossible à tester de manière exhaustive : un code qui n'est pas testable est un bug en devenir.

Une méthode nécessitant beaucoup d'arguments contiendra probablement trop de préoccupations et s'éloignera d'une responsabilité unique, une refactorisation sera vraisemblablement nécessaire pour la re-découper en plusieurs méthodes plus simples et de plus petites envergures.

Une ligne qu'on peut extraire d'une méthode est une ligne superflue