Cuáles son las formas de identificar un mal diseño de software?

Si no sabes lo que el software está tratando de lograr después de varias horas de leerlo.

No es tan malo si sabes cuál es el objetivo final del software. Poco a poco puedes averiguar los componentes de implementación subyacentes en detalle.

En un nivel más técnico y micro, supongo que los siguientes 3 puntos afectan a la calidad del software:

  • 1.) Uso de Variables Globales

Esto es probablemente lo primero que aprendí a no hacer cuando estoy aprendiendo a codificar. En realidad tiene mucho sentido. Imagina que tienes 50 funciones que cambian el valor de la variable global en cualquier momento. Imagina que esas funciones están separadas en diferentes archivos, y en diferentes redes. Rastrearlas es doloroso.

  • 2.) NO encapsular los cambios

La siguiente cosa que aprendí en programación es encapsular siempre los elementos que crees que pueden cambiar a menudo. Esto, de hecho, es la base de varios patrones de diseño escritos por La banda de los cuatro

  • 3.) Código ofuscado

Estos son códigos que son simplemente confusos de leer. Aquí's una lista de ejemplos de código malo. La intención del autor no es nada clara, hay faltas de ortografía y se hacen demasiadas cosas a la vez.

Imagina tener una función:

setUserName()
{br> //Autenticar usuario
/Parar la entrada del usuario
//Actualizar la DB
//Redirigir a la página de inicio del usuario
}

También podríamos nombrarla:

AutenticarAndParUserAndUpdateDBWithRedirection()
{
// hacer cosas...
}