38 votes

Comprendre cette citation de Brian Kernighan

"Le débogage est deux fois plus difficile que l'écriture du code. Par conséquent, si vous écrivez le code aussi intelligemment que possible, vous n'êtes pas assez intelligent, par définition, pour le déboguer." --Brian Kernighan

Cela semble être une question subjective, mais à votre avis,

"Qu'est-ce qu'il a l'intention" d'intelligent "?

61voto

Steven Sudit Points 13793

Si le code est assez complexe pour être à la limite de vos compétences, puis le débogage de code va dépasser vos compétences. En d'autres termes, ne faites pas de code aussi complexe que vous ne pouvez pas maintenir.

modifier

J'ai juste couru dans une autre citation de Kernighan (et Plauger, dans "Les Éléments de Style de Programmation"), qui, je pense, permet de clarifier la première:

Tout le monde sait que le débogage est deux fois aussi dur que l'écriture d'un programme dans le première place. Donc, si vous êtes aussi intelligent comme vous pouvez l'être, quand vous l'écrivez, comment arriverez-vous à le corriger?

18voto

scraimer Points 7000

Il est simple de math, oui? Disons que vous êtes en train de rédiger une application nommée "Truc".

X = comment vous êtes intelligents.
Smart(WriteThingy) = comment intelligente vous avez besoin pour être à écrire le code pour le "Truc".
Smart(DebugThingy) = comment intelligente vous avez besoin pour être à déboguer le code de Truc.

Le débogage est deux fois plus dur que l'écriture le code de la première place.

Nous avons donc:

Smart(DebugThingy) = 2 * Smart(WriteThingy)

Étant donné que:

si vous écrivez le code le plus intelligemment possible

Nous avons:

X = Smart(WriteThingy)

Ce qui signifie essentiellement que vous n'êtes plus intelligent que d'être capable d'écrire des Truc.

Et depuis:

Smart(WriteThingy) < 2 * Smart(WriteThingy)

Nous obtenons:

X = Smart(WriteThingy) < 2 * Smart(WriteThingy) = Smart(DebugThingy)

Ou:

X < Smart(DebugThingy)

Qui est en gros ce qu'il dit:

vous êtes, par définition, pas assez intelligent pour le débogage.

8voto

Nick Dandoulakis Points 26809

A MON HUMBLE AVIS,
Habituellement, lorsque nous revenons pour modifier l'ancien code (2 ou 3 mois), nous essayons de comprendre (rappelez-vous) comment cela fonctionne. Maintenant, si nous avons commis l’ erreur de sur-optimiser ou de sur-nettoyer, nous aurons beaucoup de mal à le modifier.

5voto

kloucks Points 1530

Cela signifie que vous n'êtes pas aussi intelligent que vous le pensez! Et plus tôt vous acceptez que plus vite vous pourrez commencer à écrire du "bon" code.

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