Question

Routines, procédures, méthodes - peu importe comment vous les appelez, ce sont des éléments de base importants pour nous, les développeurs.Quelle caractéristique unique qualifieriez-vous de le plus important un?

(En fournissant une caractéristique par réponse, il est possible de voter pour elles individuellement.C'est à dire.le but de cette question n’est pas de décider d’isoler une caractéristique, mais plutôt de mettre en évidence tous les plus importants.)

Était-ce utile?

La solution

Je pense que le critère le plus important serait qu'il ait un seul objectif.

Après cela, il satisfait correctement à cet objectif (et uniquement à cet objectif).

Autres conseils

Noms des procédures d’auto-commentation.

Exemples:GetStorefromAddress getcarsbymake

Il devrait être facilement testé unitairement.

Le nom de la routine correspond à sa fonctionnalité.

Il est surprenant de voir combien de fois une fonction X fait X et aussi Y, ou la majeure partie de X mais pas la totalité de X.

est aucun critère unique permettant de distinguer une bonne routine d’une mauvaise.

Parmi les critères sont :

  • intégrité conceptuelle :Il fait quelque chose qui peut être décrit sous une forme courte simple, une phrase ou un paragraphe;
  • couplage lâche:Son comportement n'est pas sensible à ce qui se passe dans le code qui l'entoure;
  • taille raisonnable :Les longues routines sont plus difficiles à lire et à comprendre, et sont moins susceptibles d'avoir une bonne intégrité conceptuelle;
  • Le critère de Parnas :Ils "cachent" une chose qui peut changer, afin que les changements d'exigences aient un effet limité sur le reste du système.

conçu pour être facilement lu et compris par les humains - sans cela, il est beaucoup plus difficile de le modifier pour avoir tous les autres merveilleux attributs qui seront répertoriés ici

Nombre de choses qu'il essaie de faire.

Si ce n’est pas exactement 1, vous avez probablement un problème.

Cela ne devrait pas avoir d’effets secondaires inattendus.

bonne gestion des erreurs (fiabilité)

brièveté

(c'était censé être une réponse semi-amusante, mais SO ne laisserait pas publier le seul mot seul !)

Ça doit être atomique

Lignes de code.

Vous devez suivre le nombre de modifications requises après la mise en service de la routine.Une « bonne » routine est une routine qui nécessite peu de modifications.Une «mauvaise» routine s'avère définitivement l'être lorsqu'un certain nombre de correctifs sont nécessaires.

Cela peut facilement être accompli avec un en-tête de commentaire sur chaque appel de méthode qui est mis à jour après chaque modification.

Il fait une chose ou délègue plusieurs choses à d'autres fonctions

Clarté – Facile à comprendre

Je pense qu'il est plus facile de répondre à cette question si vous considérez les routines comme faisant partie d'une API.Il n’existe pas beaucoup de routines autonomes, du moins pas dans un système vraiment utile.Donc honnêtement, je pense que les choses les plus importantes à considérer lors de l’écriture de routines sont :

  1. Intuitivité Dans quelle mesure mon ensemble d’instructions est-il intuitif : les gens comprendront-ils le but sans avoir à parcourir une grande quantité de documentation ?

  2. Orthogonalité Dans quelle mesure mes routines sont-elles orthogonales ?Chacun accomplit-il une tâche particulière, ou existe-t-il plusieurs façons (mais légèrement différentes) de faire la même chose ?S'il y en a, c'est mauvais et l'API doit probablement être repensée.

  3. Compacité Quelle quantité d’API faut-il pour effectuer des tâches simples ?Dois-je apprendre beaucoup de choses pour accomplir quelque chose, ou puis-je me contenter de quelques routines qui font quelque chose d’intuitif et de puissant ?Vous devez peser les compromis de celui-ci avec l'orthogonalité pour trouver un bon équilibre pour votre domaine particulier.

A partir du nom de la routine, vous pouvez dire ce que fait la routine (et quand vous vérifiez le code, vous réalisez que vous aviez raison ;-)

La routine utilise un niveau d’abstraction cohérent tout au long.

Je dirais que les conditions préalables et postérieures sont bien documentées (et effectivement appliquées).

Un seul point de retour

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top