Trovo che quando lavoro con il codice GUI, il codice tende a gonfiarsi più velocemente di altri tipi di codice. Sembra anche più difficile rifattorizzare. Mentre in altri tipi di codice posso refactificare abbastanza facilmente - trovo che posso scomporre una classe più grande in piccoli pezzi di funzionalità - con la maggior parte dei framework GUI sono spesso legato a un framework che richiede il mio widget / controllo / qualunque classe per implementare molte più cose direttamente nel widget / controllo / qualunque cosa. A volte ciò è dovuto alla necessità di (a) ereditare da alcuni widget / controlli / cose di base o (b) accedere a metodi protetti.
In genere, ad esempio, devo anche rispondere a una grande varietà di input tramite segnali / eventi / qualunque cosa dal framework per implementare tutte le modalità di interazione con l'utente. Potrei aver bisogno in un widget / controllo della GUI di gestire una grande varietà di input / output che potrebbe includere:
- un tasto destro / menu contestuale
- reagire alle selezioni dal menu contestuale - che possono essere molte
- un modo speciale per dipingere la GUI
- reagire all'input da tastiera
- pulsanti, caselle di controllo,
- ecc ecc
... nel frattempo gestisci le classi sotto la GUI che rappresentano la logica aziendale.
Una semplice GUI diretta può far crescere il suo codice abbastanza rapidamente, anche se separando la logica di business e usando MVC, trovo che il codice GUI sia un grande magnete per il cambiamento.
Esiste un modo per gestire il codice della GUI in modo sano ed evitare di farlo diventare una finestra rotta? Oppure una massa di gestori di eventi casuali / metodi ignorati è davvero la migliore che possiamo fare per il codice della GUI?