Je trouve que chaque fois que je travaille avec du code GUI, le code a tendance à gonfler plus rapidement que les autres types de code. Il semble également plus difficile de refactoriser. Alors que dans d'autres types de code, je peux refactoriser assez facilement - je trouve que je peux décomposer une classe plus grande en fonctionnalités plus petites - avec la plupart des frameworks d'interface graphique, je suis souvent lié à un framework qui requiert mon widget / control / toute classe pour implémenter beaucoup plus de choses plus directement dans le widget / contrôle / que ce soit. Parfois, cela est dû à la nécessité de (a) hériter d'un widget / contrôle / chose de base ou (b) d'accéder à des méthodes protégées.
Je dois aussi généralement, par exemple, répondre à une grande variété d'entrées via des signaux / événements / quel que soit le cadre pour implémenter tous les modes d'interaction avec l'utilisateur. Je pourrais avoir besoin dans un widget / contrôle d'interface graphique pour gérer une grande variété d'entrées / sorties pouvant inclure:
- un clic droit / menu contextuel
- réagir aux sélections du menu contextuel - qui peuvent être nombreuses
- un moyen spécial de peindre l'interface graphique
- réagir à la saisie au clavier
- boutons, cases à cocher,
- etc
... tout en gérant les classes sous l'interface graphique représentant la logique métier.
Une interface graphique simple et simple peut faire croître son code assez rapidement, même en séparant la logique de commerce et en utilisant MVC, je trouve que le code d'interface graphique est un puissant aimant pour le changement.
Existe-t-il un moyen de gérer le code de l'interface graphique de manière saine et d'éviter de le laisser devenir une fenêtre cassée? Ou une masse de gestionnaires d'événements aléatoires / méthodes surchargées est-elle vraiment la meilleure solution pour le code d'interface graphique?