Ir al contenido

Comentarios: Un desodorante para disimular los malos olores del código

·266 palabras·2 mins
Programación
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es un Ingeniero de Software, escritor publicado y galardonado. Actualmente, trabaja para MariaDB plc como Ingeniero de Relaciones con Desarrolladores (Developer Relations Engineer). Comenzó su trayectoria en programación a los 13 años con BASIC en una rudimentaria pantalla negra, para lugo rápidamente transitar a C, C++ y Java durante sus años académicos en la Universidad Nacional de Colombia. Trasladándose primero al Reino Unido y luego a Finlandia, Alejandro profundizó su participación en la comunidad de código abierto. Es reconocido en los círculos de Java, acreditado con artículos y videos que acumulan millones de vistas, y presentaciones en eventos internacionales.
Camiseta divertida para desarrolladores

No me malinterpreten. Los comentarios son útiles y no todos tienen el propósito olfativo de la famosa analogía que estoy usando en el título de este artículo. Entonces, ¿qué tiene de malo los comentarios que los programadores están dispuestos a incluso vestir una camiseta sobre este oloroso asunto? Digamos que tenemos este fragante método:

nastyMethod() {
  // conectar a la base de datos
  ... Código para conectar a la base de datos ...

  // crear configuración predeterminada
  ... Código para crear la configuración predeterminada ...

  // cargar configuración
  ... Código para cargar la configuración ...

  ... y más, y más, y aún más de esto...
}

El problema aquí es que los comentarios están diciendo lo que el código está haciendo. Los comentarios deberían decir POR QUÉ el código está haciendo algo, no QUÉ está haciendo el código. Además, esto típicamente lleva al anti-patrón Método Largo poniendo en riesgo dos principios básicos de diseño orientado a objetos: Principio de Segregación de Interfaces y Principio de Responsabilidad Única por decir lo menos.

Haz que tu código se explique por sí mismo:

betterMethod() {
  connectToDatabase();
  createDefaultConfiguration();
  loadConfiguration();
}

connectToDatabase() {
  ... Código para conectar a la base de datos ...
}

createDefaultConfiguration() {
  ... Código para crear la configuración predeterminada ...
}

loadConfiguration() {
  ... Código para cargar la configuración ...
}

Podrías argumentar “este método de extraer a método llevará a clases con demasiados métodos, haciéndolos difíciles de entender”. Bueno, usa la refactorización Extraer Clase si llegas a ese punto. Recuerda: Los programas orientados a objetos que viven mejor y más tiempo son aquellos con métodos cortos.

Relacionados

Comentando rápidamente (on-off)
·117 palabras·1 min
Programación
He usado esto dos o tres veces en mi vida, pero es uno de esos trucos simples (¿y útiles?
Líneas vacías y semántica en código fuente
·534 palabras·3 mins
Programación
Recuerdo que hace un par de años, mientras trabajaba con algunos desarrolladores, uno de ellos parecía irritado al ver líneas vacías en el código fuente.
Sorteo de libros: Gana una copia gratuita del libro "Vaadin 7 UI Design By Example" - ¡Solo comentando!
·250 palabras·2 mins
Vaadin Noticias
Y los ganadores son: Iskael Díaz Márquez Camilo González Packt Publishing tiene dos copias de Vaadin 7 UI Design By Example para regalar a dos afortunados ganadores.