L'ingegneria è tipicamente l'arte di sapere quale soluzione si adatta meglio al problema. Se mi venisse chiesto come dovrei usare le classi singleton? , tutti i database dovrebbero avere viste e trigger? , qual è il più grande framework PHP? , C ++ o Go better? o RSA o AES sono più sicuri ? Sicuramente risponderò " Depurato ... "
Ma una domanda spicca, " dovrei usare il design modulare? " - " Absolutely "
Non ho mai dubitato del design modulare nella mia esperienza. Il software che realizzo deve essere assemblato, assemblato e intercambiabile come i mattoncini Lego (dopo aver definito cosa è un mattone ovviamente). Non importa quale lingua, non importa quale macchina, non importa quale scopo, ecc. Quindi devo ancora dire "dipende" quando chiedi se il design modulare dovrebbe essere usato.
Quasi ogni altro aspetto dell'ingegneria del software ha un indice di accettazione che può essere messo. Il design modulare (finora) dà e dà sempre. Questo mi spaventa e cerco costantemente perché nessuno dovrebbe usare il design modulare. Voglio dire, se programmate in modo tale che tutto il codice sia incollato e contenga una lunghezza variabile e un'espandibilità limitata, e nessun mezzo per la separabilità degli errori, vuol dire che automaticamente significa che siete un cattivo programmatore? C'è qualche ragione per codificare in quella moda oltre alla pigrizia? Ci sono altri modi per progettare un progetto? Oppure è la progettazione modulare del modo più indiscusso di fare le cose, soprattutto il 100% (proprio come respirare)?