6
votes

Conventions de dénomination de validation? C #

Question très simple, mais je tiens à commencer à utiliser une convention de dénomination cohérente pour les méthodes de validation et je ne peux pas penser au meilleur moyen!

Les gens ont-ils tendance à utiliser un style isdatavalid ()? ou existe-t-il d'autres qui sont plus descriptifs et plus significatifs?

acclamations


1 commentaires

Faites-vous quelque chose comme ceci: Conditions.codeplex.com


3 Réponses :


8
votes

Cela dépend de la méthode de votre validation.

S'il renvoie un booléen, alors probablement en commençant par est et finissant par valide est un bon endroit pour commencer. Utilisation de est pour les appels booléens conduit généralement à un code lisible dans si déclarations.

Si votre méthode de validation jette une exception, je démarrerais habituellement le nom de la méthode avec quelque chose comme vérifier .

Cependant, la peine d'être envisagée (comme méthodes devraient généralement utiliser des verbes) commence le nom de la méthode avec Validate . Le est est généralement plus applicable aux propriétés.


0 commentaires

1
votes

Les gens ont-ils tendance à utiliser un style isdatavalid ()?

J'utilise généralement le style MethodName 'est' lorsque la méthode renvoie une seule valeur booléenne. Il est parfaitement acceptable en termes de dénomination. Beaucoup de fois la validation des données est effectuée dans l'ensemble d'une propriété plutôt que dans ce cas, vous n'avez pas besoin de modifier le nom de la propriété pour l'indiquer, il valide le jeu de données.

Voici un lien qui donne quelques instructions de nommage générales que vous pourriez trouver intéressantes également:

Directives de nommage: http://msdn.microsoft.com/fr -us / bibliothèque / xzf533w0 (v = vs.71) .aspx


0 commentaires

6
votes

Comme avec quoi que ce soit impliquant des conventions de dénomination, il n'y a pas de réponse droite , mais il y a beaucoup de problèmes courants avec des méthodes de validation qui se prêtent à une approche donnée, à savoir:

  • Si tout va bien, vous n'avez généralement besoin que de l'état booléen de la validation.
  • S'il y a des problèmes, vous devez généralement connaître des détails sur le problème.
  • Vous voulez généralement que des objets aient des approches similaires à la validation.

    Une approche que j'ai trouvée utile est d'avoir une classe de validateur séparée pour chaque objet de modèle que je souhaite valider qui implémente une interface commune Itivalidator , généralement avec les méthodes suivantes :

    • Un constructeur qui prend l'objet à être validé.
    • une propriété nommée ISVALID (), qui valide l'objet, renvoie une booléenne, mais stocke des erreurs spécifiques dans des variables privées afin que la validation n'a pas besoin d'être recalculée lorsque vous souhaitez les erreurs.
    • une propriété nommée errorormsages, qui valide l'objet (s'il n'a pas encore été validé) et renvoie une liste d'erreurs avec l'objet.

      Ceci permet une utilisation assez naturelle dans votre logique commerciale: xxx


1 commentaires

Il semble que Microsoft aime aussi cette approche. Quelque chose de similaire (ItivalidatableObject) a été introduit dans ASP .NET MVC , et ils l'ont gardé dans . NET CORE . Je préfère également que la logique de validation soit dans la classe étant validée; Moins de chances pour eux de sortir de la synchronisation comme l'âge de codeBase.