38 votes

Le degré de complexité de code devrait être?

Je suis étudiant sur des algorithmes qui peut m'aider à écrire plus petit, mais un code plus complexe. Au lieu d'écrire de 150 lignes de if-else, je peux concevoir un algorithme qui fait en 20 lignes. Le problème est que beaucoup de ces algorithmes peuvent être complexes et exigent beaucoup de maths pour les comprendre. Je suis aussi le seul ici qui les comprend.

Pour la maintenabilité du code, ne serait-il pas mieux écrire du code comme tout le monde, ou est-il préférable d'utiliser les algorithmes?

55voto

Eclipse Points 27662

Comme Einstein l'a dit:

Tout rendre aussi simple que possible, mais pas plus.

Il s'applique au code ainsi qu'à la physique.

Utilisez votre jugement - s'il s'en plus facile à maintenir? Souvent par la réduction importante si/d'autre mess en quelque chose de plus vous retirez cas du coin qui n'a pas besoin d'être là, de prévenir les bogues qui ont peut-être sauté dans l'avenir. Bien sûr, par la réduction d'un ensemble clair de conditions dans une petite torsion de la logique booléenne qui ne se produit au travail, vous pouvez peut-être rendre les choses beaucoup plus difficiles à maintenir, lorsque quelque chose change.

EDIT:
Avec le cas que vous avez cité, si la formule est d'aller travailler, alors c'est probablement la meilleure option - vous pouvez même laisser un commentaire en citant la source. Il est tout à fait possible, cependant, que cette formule était là avant, mais a été abandonné afin de permettre à un cas spécifique pour être contourné. C'est le genre de chose que les commentaires dans votre référentiel de gestion des versions devraient aider.

Puisque personne ne l'a posté un lien encore, voici une description de l'algorithme PID il parle.

28voto

martinus Points 6895

Le Code est écrit à la fois, et de lire 10 fois. Ainsi, vous devriez essayer de le rendre aussi facile à comprendre que possible.

Aussi, la mise au point est beaucoup plus difficile que d'écrire du code. Alors, comment pouvez-vous jamais déboguer votre code lorsque vous avez déjà mis toute votre intelligence dans l'écriture de code complexe?

Juste essayer de suivre Les Trois Lois de Développement de Logiciels:

  1. Un développeur doit écrire le code qui crée de la valeur.
  2. Un développeur doit faire leur code facile à maintenir, sauf lorsque ces dépenses sont en conflit avec la première loi.
  3. Un développeur doit réduire leur code pour la plus petite taille possible, aussi longtemps que cette réduction ne soit pas en conflit avec les deux premières lois.

25voto

Fabian Steeg Points 24261

Robert C. Martin utilise cette bd comme une introduction à son livre de Code Propre:

The only valid measurement of code quality: WTFs/minute

13voto

Jason Punyon Points 21244

Rappelez-vous que le code doit d'abord être compris par les humains...les compilateurs de prendre soin de l'ordinateur de comprendre.

11voto

Dillie-O Points 16780

Le niveau de "complexe" peut être un peu risqué ici, mais tant que l'algorithme n'a pas besoin d'un Doctorat en mathématiques à résoudre,

Je dirais d'aller de l'avant et à l'utilisation de ces algorithmes. Assurez-vous de mettre à un niveau décent de documentation sur le nom de l'algorithme, et peut-être une courte description de la façon dont il fonctionne, ou une référence à un document à ce sujet.

Il va garder la quantité de code de la panne, nous l'espérons donner un peu plus de performances de l'application, et il faut espérer encourager quelques programmeurs autour de vous apprendre de nouvelles choses à ajouter à leur répertoire. En Plus il y a toujours la possibilité qu'un programmeur qui ne savent ces choses ne pas être venue plus tard.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X