Lava seca

En computación, el antipatrón de diseño lava flow o lava seca ocurre cuando un software es entregado antes de ser completado o antes de ser completamente probado y al ser expuesto, ya no es posible cambiar sus características, como cuando un flujo de lava se seca por fuera.

El antipatrón flujo de lava se encuentra comúnmente en los sistemas que inicialmente tenían como fin la investigación, pero que se acabaron produciendo. Se caracteriza por los trozos de código (flujos de lava) de versiones anteriores que quedaron esparcidas por el código de la aplicación, y ahora, se encuentran inamovibles (flujo de lava seco y endurecido) ya que nadie recuerda muy bien para que sirven o si se utilizan en el código.

Este es el resultado de un desarrollo previo en el que durante la fase de investigación, los desarrolladores probaron varias formas de resolver un problema, por lo general, en algún tipo de “carrera” para emitir algún tipo de demostración, provocando esto que creasen un código mal estructurado ( en forma de Código spaghetti) y mal documentado.

/**
 * 
 * @author Empresa Ficticia
 *
 */
public class Antigua {
	
	/**
	 * Cuando me encontré este método no tenía javadoc.
	 * Creo que lo hizo Pedro, pero no estoy muy seguro, además ya no está en la empresa.
	 * No se muy bien si lo estamos utilizando, pero parece ser un método importante ya que tiene muchas
	 * líneas de código así que es mejor que nadie lo toque.
	 * El nombre tampoco ayuda a entenderlo
	 */
	public void hacerAlgo(){
		// Infinitas líneas de código
		// ....
		// ....
		// ....
		// ....
		
		
		// ....
		// FIN
	}

}

El resultado del Flujo de Lava es muchos fragmentos de código, clases inexplicables y procedimientos que no están relacionados con el resto del programa. De hecho, muchos de esos trozos tienen una apariencia tan complicada que hace que parezcan importantes.

Estos códigos no suelen ser analizados debido al gran coste que tiene su análisis y verificación. Realmente en la práctica la verificación y la prueba rara vez son posibles.

Síntomas

  • Frecuentes variables y fragmentos de código injustificados.
  • Funciones indocumentadas
  • Trozos de código o clases que no se sabe de forma clara que hacen.
  • Grandes bloques de código sin explicación ni documentación.
  • Muchas partes del código con la etiqueta “se debe remplazar”.
  • Interfaces obsoletos, sin uso o inexplicables puestos en archivos de cabecera.
Other Languages