Ci sono dei motivi per NON usare il design modulare? [chiuso]

6

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)?

    
posta Sanchke Dellowar 22.12.2016 - 22:39
fonte

2 risposte

2

Il design modulare richiede uno sforzo (non insignificante) come euristica del design, ma i suoi benefici tornano in

  • gestione della complessità,
  • semplificare la manutenzione a lungo termine,
  • facilitare il riutilizzo,
  • ecc.

Quindi, un progetto che non si preoccupa di nessuna di queste cose sarebbe uno in cui la progettazione modulare sarebbe uno spreco. È simile alla risposta di Thomas Kilian che menziona sistemi molto piccoli.

Per un'analogia, pensa ai mobili IKEA e a tutti gli sforzi di progettazione modulare che ne derivano. Quindi, chiediti se hai solo bisogno di un tavolo per distribuire cibo agli ospiti per una festa di una notte, potresti risolvere qualcosa che hai a disposizione per risolvere il problema (i bambini lo fanno abbastanza bene!). Progettare un nuovo tavolo simile a IKEA (con parti modulari) per questo scopo sarebbe eccessivo per la tua festa di una notte.

Mi piace lo spettro del design di Neal Ford. Il design modulare (il modo in cui lo vedo) non esisterebbe nemmeno all'estremo "cowboy hacking".

    
risposta data 23.12.2016 - 16:22
fonte
8

Che cos'è il design modulare NON? Per me sarebbe un design monolitico. Quelli hanno vantaggi in sistemi molto piccoli. Questo è dove ogni tipo di risorsa è limitata. Potrebbe essere la memoria, la CPU o anche il tempo che un programmatore può impiegare per crearlo. Un design monolitico può essere afferrato in un unico pezzo (o più specificamente, è NECESSARIO esserlo). In questo modo ottieni l'intera immagine. Ma ancora, è necessario ottenere l'intera immagine. Quindi, fintanto che il sistema è piccolo, ciò sarà fattibile. Partendo da una certa dimensione, sicuramente vuoi un design modulare. Regola 1 per mangiare un elefante: mangiarlo a fette.

    
risposta data 22.12.2016 - 23:25
fonte

Leggi altre domande sui tag