Ho un sistema complesso da progettare. ho due modi:Due modi per progettare sistemi complessi: dall'alto verso il basso e dal basso verso l'alto
top-down: io vi progettare molte interfacce e contratti. Afterwords, implementerò queste interfacce e scriverò un prototipo per verificare il design.
Bottom-up: Scriverò il codice per far funzionare il sistema. Afterwords, estrarrò interfacce e contratti dal codice solido. Le interfacce e i contratti distillati sono il mio design. È la regola "eseguirlo, renderlo corretto".
Qual è il modo migliore? Dal mio punto di vista, sceglierò Bottom-up. Perché Top-down è molto difficile, nessuno può progettare molte interfacce ad alto livello astratto, almeno è difficile per me. Quando scrivo una solida implementazione per verificare il progetto iniziale, ci sono molte cose irragionevoli che mi costringono a riprogettare da zero. Mentre uso Bottom-up, mi sento abbastanza "sicuro", può funzionare almeno.