2009-02-23 6 views
4

Dans l'épisode #41 du podcast Stack Overflow Jeff et Joel ont discuté des idéologies GUI qui conduisent à une mauvaise utilisation. Quels toolkits de GUI avez-vous vu qui influencent le plus avantageusement les programmeurs qui les utilisent? Quel niveau de séparation (entre l'interface utilisateur et la mise en œuvre) trouvez-vous le plus efficace pour la testabilité et la convivialité?Boîte à outils GUI le plus naturel

Répondre

4

Quels toolkits GUI avez-vous vu qui influencent le plus avantageusement les programmeurs qui les utilisent?

Le mien, développé sur la base de l'expérience avec l'informatique et les besoins spécifiques de l'industrie pour laquelle je développe. En bref, il n'y a pas de formule magique mais seulement des outils avec lesquels vous devez utiliser votre expérience et votre jugement. Ce qui fonctionne pour mon logiciel de CAO/FAO, ne va pas fonctionner pour le site Web d'un développeur Web, ni pour un développeur de logiciels de bureau, et ainsi de suite.

Quel niveau de séparation (entre interface utilisateur et implémentation) trouvez-vous le plus efficace pour la testabilité et la convivialité?

Pour les applications traditionnelles qui s'exécutent sur le bureau d'un ordinateur, je recommande les variantes du Passive View. La classe responsable de la création et de la gestion du formulaire est un shell léger qui transmet les événements à l'objet d'interface utilisateur. L'UI_Object interagit avec le formulaire via une interface. À terme, l'objet UI implémente une interface UI_View et s'enregistre auprès d'un View Controller situé plus bas dans la hiérarchie d'objets. L'objet UI_Object exécute alors l'objet en implémentant le motif de commande qui modifie le modèle. L'objet de commande peut interagir avec les différentes vues via les interfaces exposées par le contrôle View. Cela permet de ripper les classes de formulaire et de les remplacer par des classes de raccord qui implémentent les interfaces de formulaire. Les classes stub sont utilisées pour les tests automatisés, en particulier pour les tests d'intégration.

Les interfaces définissent précisément l'interaction entre le formulaire, l'objet UI, les commandes et les vues. Ils peuvent être conçus pour être relativement indépendants de la langue, de sorte qu'ils peuvent faciliter le portage entre plates-formes.

Je ne suis pas aussi compétent avec la programmation pour le Web, mais il existe des modèles connexes qui accomplissent la même chose.

Je dois également avertir que Passive View peut être trop lourd. Vous ne voudrez peut-être pas l'utiliser pour une boîte de dialogue de configuration simple (comme la boîte de dialogue qui configure les paramètres du port série). Ce jugement demande si la facilité de maintenance et de codage vaut le temps de test supplémentaire. Si une boîte de dialogue n'est appelée que par une seule commande pour modifier certains paramètres de configuration, il est préférable de la définir dans la commande elle-même.

Questions connexes