Hai lavorato con un'applicazione ben progettata? [chiuso]

5

Ispirato da questa domanda , ho iniziato a chiedermi - c'è o è mai esistita una "applicazione ben progettata"? Uno in cui l'architettura sarebbe perfetta e nessun refactoring sarebbe mai necessario; il codice sarebbe facile da leggere e capire anche per chi è nuovo al progetto; i cambiamenti potrebbero essere fatti con una certezza del 100% che non si romperà nulla; etc?

Devo ammettere che qualunque sia stato il codice base con cui ho lavorato, sono stati tutti più o meno un casino. Anche il codice che inizio a me stesso rimane organizzato all'inizio, e poi lentamente si deteriora con il passare del tempo. Sto persino iniziando ad accettare questo come parte della vita e non riesco a capire se dovrei essere preoccupato o no.

Quindi ... esiste una "applicazione ben progettata"? Oppure è tutto il nostro codice così schifoso che non c'è 'anche solo un punto nel tentativo di renderlo migliore, perché non sarà mai buono comunque?

    
posta Vilx- 03.03.2011 - 12:53
fonte

5 risposte

6

Sempre risolvi le finestre rotte

In questo modo il tuo codice migliorerà continuamente e raggiungerà quel nirvana che sogniamo.

Può essere fatto - l'ho provato io stesso.

    
risposta data 03.03.2011 - 13:02
fonte
5

Non mi sono mai imbattuto in un'applicazione perfettamente progettata, ma ho trovato blocchi di codice che sembrano immacolati. Poiché la maggior parte delle applicazioni coinvolge molti sviluppatori e "perfetto" è una questione di opinione quando si tratta di codice che è impossibile creare un'applicazione perfettamente.

Anche se non riesco a pensare a un singolo miglioramento che potrebbe essere apportato al "Ciao mondo!" applicazione. Questo sembra soddisfare tutte le sue esigenze perfettamente.

    
risposta data 03.03.2011 - 13:01
fonte
1

Ci sono alcuni elementi di base del buon design, ma molti sono soggettivi e relativi all'uso attuale dell'applicazione, al team che lo ha costruito, a chi deve mantenerlo e all'implementazione futura (Buona fortuna sapendo che). .

Il polimorfismo è eccezionale finché non diventa troppo complicato. La tua funzione di 45 caratteri è chiara, ma è difficile scrivere.

Ho visto un'app scritta in Basic per MSDOS. Codice elegante per il momento. Venduto a centinaia di clienti e in 8 anni non ha mai cambiato le strutture dati principali. Qualcuno ha deciso che aveva bisogno di una GUI e lo ha riscritto completamente in VB. Questo mucchio di pasticcio fumante ha richiesto quasi un anno solo per risolvere i principali bug.

Pensa che, indipendentemente da quanto sia buono il tuo codice, alla fine verrà gettato via. Il 99% di tutti gli iPhone finirà in una discarica.

    
risposta data 03.03.2011 - 14:31
fonte
0

Ho un paio di volte. In effetti, nel mio attuale progetto abbiamo dovuto semplicemente cambiare il modo in cui ci connettiamo al database, e sono stato in grado di apportare il cambiamento (abbastanza significativo) in solo un paio di giorni. Il codice del database era modulare, ben strutturato (abbiamo utilizzato il modello di strategia per isolare le sezioni specifiche del DB) e abbiamo fatto attenzione a chiamarlo sempre tramite interfacce. Modelli di astrazione e design FTW!

    
risposta data 03.03.2011 - 17:04
fonte
0

Beh, non ho mai visto niente del genere:

One where the architecture would be perfect and no refactoring would ever be needed; code would be easy to read and understand even for someone new to the project; changes could be done with a 100% certainty that they won't break anything; etc?

Detto questo, ho lavorato su un paio di progetti molto ben progettati. Entrambi erano molto modulari e imponevano il principio di una singola responsabilità. Quello che mi piaceva di più era un po 'più semplice: nessun sistema di componenti costruito in casa, meno eredità di implementazione, più controlli in fase di compilazione.

Ma sì, a parte questi due progetti, tutto il resto che ho mai visto è un casino.

    
risposta data 03.03.2011 - 17:39
fonte

Leggi altre domande sui tag