Los comentarios son falsos

Si eres programador, hay muchas prácticas que puedes odiar.





Valores codificados. Doble lógica. Jerarquías de herencia complejas. Pero, ¿deberían los comentarios estar en esta lista?





Hace mucho tiempo, en los días de la programación prehistórica, escribir comentarios se consideraba una parte obligatoria de la escritura de código. Cuando escribiste el código, estaba lleno de comentarios breves y precisos. Luego, el código limpio y la programación ágil comenzaron a dominar el mundo. Los puristas gritaban sobre los peligros de los comentarios que llenaban el código vulnerable y no estructurado. De repente, los comentarios se convirtieron en un error, un anti-patrón, una colección de mentiras descaradas.





Muchos desarrolladores se sintieron acorralados.





Elección falsa
Elección falsa

¿Pero la elección es tan obvia? ¿O todavía hay una forma de escribir comentarios y al mismo tiempo respetarte levantándote por la mañana? Para encontrar la respuesta, veamos lo terrible que se comentan los códigos y cómo incluso un mal comentario puede salvar vidas.





Comentarios perezosos

, , .





, , :





double delta = h*h-r1*r1;
double r2 = Math.Sqrt(delta);
      
      



, , . , , , :





// Calculate side length using the Pythagorean Theorem
// and put the value into variable "r2"
double delta = h*h-r1*r1;
double r2 = Math.Sqrt(delta);
      
      



- . .





. , :





double lengthSideB = Math.Sqrt(
  Math.Pow(hypotenuse,2) - Math.Pow(lengthSideA,2);
)
      
      



:





double sideA = Pythagoras.GetLengthOfSide(hyptenuse, sideB);
      
      



? ! - , , . , . , . - - .





. , , , . , - - . , , . , . , . :





/**
  * Constructor.
  * 
  * @param name (required) brand name of the product. Must have
  * content. Length must be in range 1..50. 
  * @param price (optional) purchase price of the product.
  * @param units (required) number of units currently in stock.
  * Can not be less than 0.
*/
public Product(string name, decimal price, integer units)
{
   ...
}
      
      



, , . - , . . , , .





. , . . . . , , - . API. , , . . - , . , API , , , . . , - . , . .





« - » - , .





. , - :





// to match ITG1's late arrows.  -K
GlobalOffsetSeconds=-0.006
      
      



, - , . - , , , , . , , , . . , , , . , - , , , , ? - , , , , , .





, , , , . , , , . , . - , - .





“I spent some time this weekend looking at very well-named, very clean, uncommented code implementing a research algorithm. I’m high-level familiar with it, the guy sitting next to me was the inventor, and the code was written a few years ago by someone else. We could barely follow it.” — Paul Nathan





, , . , , , . . , . , , . .





, . . :





  • ( )





  • ( )





  • ( IDE)





La pregunta principal es simple. ¿Vale la pena pagar por los comentarios? Las opiniones difieren, pero si usa los comentarios de manera reflexiva e inteligente, si los usa para reducir la carga cognitiva de su código, en lugar de contrarrestar las malas prácticas, pueden agregar valor incluso al código más limpio.












All Articles