Quali sono i modi per identificare un cattivo design del software?

Se non sai cosa sta cercando di ottenere il software dopo diverse ore di lettura.

Non è troppo male se sai qual è l'obiettivo finale del software. Si può lentamente capire in dettaglio i componenti di implementazione sottostanti.

A un livello più tecnico e micro, credo che i seguenti 3 punti influenzino la qualità del software:

  • 1.) Uso di variabili globali

Questa è probabilmente la prima cosa che ho imparato a non fare quando sto imparando a scrivere codice. In realtà ha molto senso. Immaginate di avere 50 funzioni che cambiano il valore della variabile globale in qualsiasi momento. Immaginate che queste funzioni siano separate in diversi file e su diverse reti. Rintracciarle è doloroso.

  • 2.) NON incapsulare i cambiamenti

La prossima cosa che ho imparato nella programmazione è di incapsulare sempre gli elementi che si pensa possano cambiare spesso. Questo infatti è alla base di vari design pattern scritti da La banda dei quattro

  • 3.) Codice offuscato

Questi sono codici che sono semplicemente confusi da leggere. Ecco una lista di esempi di Bad Code. L'intenzione dell'autore non è affatto chiara, errori di ortografia e fare troppe cose in una volta sola.

Immaginate di avere una funzione:

setUserName()
{
//Autenticate User
//Parse User Input
//Update DB
//Redirect to user home page
}

Potremmo anche chiamarla:

authenticateAndParseUserAndUpdateDBWithRedirection()
{
// fare qualcosa...
}