Bad Practice sur les méthodes génériques

Je bosse sur un projet chez un client.
Ici on a la facheuse tendence à rendre les choses compliquées, et si possible rendre le code incomprehensible ...

Voici un exemple de ce que je trouve être une mauvaise pratique.

Je suppose que tout le monde utilise maintenant les génériques depuis la sortie du FX 2.0.

une méthode du genre :

public IList<T> GetList<T>(int page,int count) where T : MaClassOuInterface

est devenu courante et est facilement compréhensible par tous. ( Ici T va être un type précisé leur de l'appel et doit avoir comme base  MaClassOuInterface)

Mais rien empeche le développeur d'appeller le type non pas T,mais plutôt par un nom qui parle un peu plus. Et c'est la que ça par en coui... 

 

La mauvaise pratique va donner la signature suivante :

public IList<MaClassOuInterface> GetList<MaClassOuInterface>(int page,int count) where MaClassOuInterface : MaClassOuInterface

 

Et voilà maintenant on se retrouve avec  un Type MaClassOuInterface qui n'est que dans le méthode, et pour la relecture on se prend vite la tête !

Dans la méthode on va pourvoir accéder aux deux types:

MaClassOuInterface t = new MaClassOuInterface(); // c'est le type génériqueMonNameSpace. MaClassOuInterface t2 = new MonNameSpace. 
MaClassOuInterface(); // c'est le type concret, enfin déjà existant !

 

Conclusion : nommé le type générique T suffit emplement !