3

StyleCop (4.7.14.0) a le paramètre "Analyser les fichiers du concepteur" coché par défaut, et je voudrais savoir s'il y a un raisonnement qui justifierait les contrôles de style de code sur un fichier généré par le concepteur.Pourquoi "Analyser les fichiers du concepteur" est la valeur par défaut pour StyleCop?

Je comprends que je peux (et comment) le désactiver en vérifiant ces fichiers (j'envisage de le faire), mais la question est, pourquoi serait-ce par défaut pour les analyser?

Ces fichiers ne doivent-ils pas être laissés à eux-mêmes? Pourquoi devrions-nous essayer de les rendre conformes à StyleCop?

+0

C'est la valeur par défaut de Microsoft. Pas le vôtre, vous ne pouvez rien y faire. –

+0

@HansPassant Eh bien, je peux le changer et il sera stocké dans le fichier 'Settings.StyleCop', qui serait utilisé à l'échelle du projet par quiconque achète le code, si c'est ce que vous voulez dire. Mais j'aimerais savoir s'il y a un raisonnement derrière cela (car les fichiers '* .designer.cs' ne sont pas compatibles avec StyleCop par défaut). Cela semble bizarre puisque les développeurs de StyleCop savent sûrement ce qui se passe si vous le laissez dans la configuration par défaut (et les seules discussions en ligne semblent concerner la façon de changer ce défaut, pas pourquoi il est là en premier lieu). –

Répondre

0

La principale raison à laquelle je peux penser est qu'il n'y a aucune garantie absolue qu'un fichier avec 'designer' dans le nom ne soit généré automatiquement.

En ces jours de forte séparation et la possibilité d'utiliser des noms verbeux et clairs, il est probablement juste de contourner le sens de la prudence par défaut. Mais je suis d'accord, si vous êtes sûr qu'ils sont toujours générés automatiquement, vous ne devriez pas essayer de les nettoyer. OTOH, mon serveur Dynamics CRM génère un fichier de référence XRM de 12 Mo donc j'ai tendance à couper celui-là!

+0

Eh bien, le suffixe doit être '.Designer.cs', donc par exemple' WebDesigner.cs' ne serait pas considéré comme un fichier de concepteur. Je doute vraiment que les gens nomment des fichiers comme 'MyClass.Designer.cs'. De plus, si vous avez un fichier appelé juste Designer.cs, il n'aura pas le suffixe complet, donc je suis sûr qu'il ne sera pas ignoré non plus. Je suis un peu curieux de savoir ce que vous faites pour nettoyer un fichier de 12 Mo, cependant. –

+0

Une chose particulière est de supprimer les fonctions de la classe à CRM que je n'utilise pas bien que ce soit une chose assez rare; le plus important est d'implémenter des classes partielles afin que je puisse séparer la fonctionnalité dont j'ai besoin en plusieurs fichiers qui n'encombrent pas individuellement le compilateur/resharper. –

1

Il peut être souhaitable de conserver le code généré selon les mêmes normes que le code créé manuellement. Certes, cela a tendance à être moins important pour les problèmes de type «code» comme ceux couverts par StyleCop que pour les problèmes de «correction» couverts par des outils comme FxCop, mais il peut toujours y avoir des raisons impérieuses de vérifier le code généré par l'outil. problèmes. .: par exemple

  1. Si l'outil qui génère le code cible est un outil que l'on a écrit, alors il est pas rare de le tenir aux mêmes normes que le code écrit manuellement. C'est, après tout, un cas où l'on a un contrôle total sur le contenu et le style du code généré. D'un point de vue pratique, l'outil pourrait être retiré ou désactivé à tout moment après la génération du code, auquel cas on finit par maintenir le code manuellement. Si les règles de style sont appliquées pour améliorer la lisibilité et la maintenabilité, il peut ne pas être souhaitable que le code généré s'écarte trop des normes de codage.

+0

Cela semble un scénario probable, celui de vérifier le style de code généré par un outil que nous avons fait nous-mêmes.Mais aussi bizarre que cela puisse paraître, les valeurs par défaut sont "Check' .designer.cs', mais ne vérifient pas les fichiers '.generated.cs'" (donc il est explicitement par défaut de ne pas vérifier le style du code généré par votre outil, et vérifie plutôt le code de Windows Forms Designer). –

Questions connexes