Question

Y a-t-il des grands, surgénéralisé et surtout des règles inutiles sur combien de temps il faudra pour comprendre un programme basé sur le nombre de LOC (lignes de code)?

(je comprends les règles seront larges, surgénéralisé et surtout inutiles. Très bien.)

(La langue en question est Delphi, mais cela ne devrait pas d'importance parce que je suis à la recherche des règles générales, surgénéralisé et surtout inutiles.)

Était-ce utile?

La solution

Certains documents concernant l'examen du code par les pairs disent qu'il devrait se situer entre 100 et 400 lignes de code par heure.

Autres conseils

Il est pas le nombre de LOC qui détermine combien de temps il faut pour comprendre un programme, il est plus la complexité.

Si mon programme avait 100.000 lignes de déclarations d'impression, je pense que le programme est assez clair pour comprendre. Toutefois, si j'avais un programme avec je pense imbriquer dix de profondeur, pour-boucles qui prendra beaucoup plus de temps à comprendre.

complexité cyclomatique peut donner une indication BRUT de quel point le le code est de comprendre, et peut signaler d'autres drapeaux d'avertissement et de votre code.

J'ai la théorie selon laquelle il est O (n 2 ) (parce que vous devez comprendre chaque ligne conjointement avec toutes les autres lignes).

Mais, comme d'habitude lors de l'utilisation de notation grand-o pour obtenir une valeur numérique réelle, cette réponse est large, surgénéralisé et la plupart du temps inutile.

Vous ne pouvez pas google car il y aura un autre nombre approximatif pour chaque programmation individuelle de la personne dans une langue spécifique.

Vous essayez d'écrire Drake équation pour l'écriture du programme.

Ce que je veux dire.

A propos auteurs du programme.

  • chaque personne a un style différent de l'écriture et le code commentant
  • toutes les langues de programmation a différentes nuances et la lisibilité
  • algorithmes peuvent être mis en œuvre à bien des égards, même dans la même langue
  • structures de données utilisées par des personnes différentes ont tendance à être assez variés
  • la décision de la façon dont le code est distribué sur les fichiers source change aussi avec goût personnel

Le passage à la personne qui lit le code.

  • la familiarité de la personne avec les questions linguistiques
  • la connaissance des algorithmes et des modèles de structure de données utilisées questions
  • quantité de contexte de l'information que la personne peut conserver à une question de temps

Shifting attention à l'environnement, ce qui importe serait.

  • le montant de distraction (à la fois pour le programmeur et la personne qui tente de lire le programme)
  • à proximité du temps de sortie de code pour le programmeur
  • les activités en attente et la motivation de la part du lecteur
  • proximité des événements populaires (vacances, événements sportifs, les dates de sortie du film!)

paramètres de l'examen du code (ce qui est pas la même chose, mais à peu près comparable), le nombre dans la gamme d'environ 50-100 LoC par heure, pour un examinateur de code expérimenté.

Bien sûr, cela dépend aussi de ce qu'ils recherchent dans l'examen, la langue, la complexité, la familiarité, etc .... Mais cela pourrait vous donner un surgénéralisation général de toute façon.

  

Je cherche des règles générales, surgénéralisé et surtout inutiles.

me semble que vous êtes juste essayer de trouver un moyen d'estimer le temps qu'il faudra pour apprendre une nouvelle base de code à la direction ou quelque chose. Dans ce cas, trouver un extrait de code en ligne, et combien de temps il vous faut pour le comprendre. Diviser par le nombre de lignes dans l'extrait. Ajoutez un peu de rembourrage. Bam! Il y a la règle.

Regardez les COCOMO équations. Ils contiennent des règles générales, surgénéralisé et surtout inutiles basé sur les lignes du code source.

En dehors de "comment compliqué est le programme?", D'autres variables comprennent des choses comme "comment bien ne comprennent-vous?" et « comment comprenez-vous autre , des choses telles que les spécifications fonctionnelles du programme? »

Quand je commence à travailler avec un nouveau programme, j'essaie de comprendre comme petit de ce possible! Plus précisément, je tente de:

  • Comprendre la spécification fonctionnelle du changement que quelqu'un me veut faire (si personne ne voulait que je changer le programme alors je aurais pas besoin de le comprendre du tout)

  • Trouver et comprendre le plus petit sous-ensemble possible du programme existant, ce qui me permettra de faire ce changement sans casser tout autre, précédent / fonctionnalités existantes.

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