28 votes

Java, générateur d'interface graphique ou codage à la main ?

Le logiciel de ma société comporte de nombreux formulaires, jusqu'à présent nous avons écrit le code manuellement (dans le style MVC).

Nous envisageons de commencer à utiliser un générateur d'interfaces graphiques.

Il y a quelques problèmes avec l'utilisation d'un générateur.

  1. Des parties du code ne sont pas lisibles.
  2. Des parties du code ne sont pas éditables.
  3. Il sera plus difficile d'éditer le code plus tard.
  4. Nous devrons continuer à utiliser le générateur à l'avenir, même si nous voulons le remplacer ou écrire manuellement, et personne ne peut garantir que l'outil sera disponible et pris en charge à l'avenir.

Je souhaite tirer des enseignements de l'expérience des autres :

  • Recommandez-vous l'utilisation d'un outil ou devrions-nous continuer à écrire le code manuellement ?
  • Quel générateur est le meilleur ?
  • Comment faites-vous face aux problèmes ? (Y a-t-il d'autres problèmes ?)

17voto

kgiannakakis Points 62727

Pour juste quelques formulaires, je recommande l'utilisation d'un constructeur. Cela ira beaucoup plus vite. Cependant, si vous avez beaucoup de formulaires que vous devez maintenir pendant un certain temps, je déconseille l'utilisation d'un constructeur. Dans ce cas, le temps que vous passez à lire le code et à effectuer la maintenance est beaucoup plus important que le temps de conception initial. Ainsi, bien que le constructeur vous fasse gagner du temps dans la phase initiale, il rend la lecture du code et la maintenance plus difficiles. De plus, il rend la réutilisation du code, même sous forme de copier-coller d'un formulaire à un autre, plus difficile.

Je ne sais pas si vous parlez d'applications web ou desktop, mais en général je n'ai pas trouvé de constructeur GUI Java qui produise une sortie élégante. Le code généré par Netbeans Swing, par exemple, est un vrai chaos. Peut-être que si un bon constructeur était disponible, je changerais d'avis. Je n'ai eu aucun problème à utiliser le concepteur de formulaire de Visual Studio - il produit un code clair et compréhensible.

Pour les applications desktop, jetez un œil à MiGLayout. C'est un gestionnaire de mise en page, pas un constructeur, pour Swing et SWT qui facilitera votre vie.

10voto

OscarRyz Points 82553

En utilisant un bon constructeur, le développement sera beaucoup plus rapide.

L'anxiété que vous ressentez de ne pas pouvoir modifier le code peut être due au fait que vous avez beaucoup de logique dans la vue où elle ne devrait pas être présente. En fait, ce changement peut vous aider à déplacer la logique de la vue, ce qui est précisément bon pour la capacité de changer les éléments visuels sans casser le code.

En ce qui concerne le côté "illisible", vous devriez envisager d'utiliser un meilleur générateur d'interface graphique. J'ai entendu dire que des choses positives sur NetBeans, et j'ai utilisé le constructeur GUI d'IntelliJ dont le code est plutôt propre.

Dans les deux cas, le code source est lisible et modifiable, mais seulement pour de petites modifications. Pour les modifications importantes, utilisez le générateur d'interface graphique.

Je pense que pour un petit nombre de formulaires, il n'y a pas de problème à procéder manuellement, mais comme vous en avez "beaucoup", comme vous venez de le dire, l'utilisation de ces outils sera plus bénéfique.

7voto

Srikanth Points 4119

Ceci est mon expérience :

Je n'ai jamais aimé le code généré par le constructeur d'interface graphique. Au moins, ce n'est pas comme dans le monde de VB où tout le monde (enfin, presque) utilisera le même IDE pour construire des applications. En Java, les gens utilisent plusieurs IDE, et certains utilisent aussi VIM et Notepad. Et tous les IDE ne génèrent pas le même type de code. Et un autre problème est qu'ils ne comprennent généralement pas le code généré par d'autres IDE. Donc, pour répondre à votre première question, je ne recommande pas.

Votre prochaine question : Quel constructeur est meilleur ? La dernière fois que j'ai utilisé, Netbeans était meilleur que la plupart de ceux que j'ai essayés.

Si vous devez utiliser un constructeur d'interface graphique parce que vous avez besoin de développer des applications plus rapidement, assurez-vous que tous les membres de votre équipe utilisent le même constructeur. Il vaut mieux obtenir leur avis à ce sujet, sinon leurs yeux vont souffrir du code source généré par l'IDE.

Montrez-nous votre décision !

5voto

broschb Points 3441

Je resterais à l'écart des constructeurs d'interfaces graphiques. Dans mon expérience (Matisse), vous finissez par passer autant de temps à écrire des interfaces graphiques avec le constructeur à la main, voire plus. En raison de la tentative de lire le code généré et de le nettoyer lors des modifications. De plus, si vous écrivez les interfaces graphiques à la main, vous devrez comprendre le code pour pouvoir les écrire, et cela vous aidera à devenir plus compétent au fil du temps, et vous deviendrez plus rapide à écrire des interfaces graphiques, et vous serez plus rapide à les écrire à la main. Avec le temps, vous pouvez également développer une bibliothèque de composants pour les fonctionnalités graphiques que vous vous retrouvez à écrire plusieurs fois. Je resterais à l'écart des constructeurs. Un bon développeur battra à tout moment un développeur moyen utilisant un constructeur.

5voto

ryvantage Points 2307

J'ai utilisé Netbeans' Java Swing GUI Builder (Matisse) pour tous mes projets depuis les 3 dernières années et demie. J'ai lu tellement de plaintes sur les GUI Builders et les programmeurs les plus expérimentés critiquent tout le monde qui laisse même entendre l'utilisation d'un, mais voici mon expérience :

  1. Le code non éditable n'a jamais besoin d'être modifié. Vraiment, le GUI Builder fournit une structure pour votre GUI. Vous faites glisser, déposer, redimensionnez et contraint votre composant en utilisant l'éditeur, mais le contenu du tableau, la liste pour la liste déroulante, etc., doivent tous être gérés en arrière-plan. Le GUI Builder vous permet de vous concentrer là-dessus tandis qu'il se charge de rendre les choses jolies et bien en place.
  2. Le WYSIWYG est toujours plus productif. Les processeurs de textes en sont la preuve. Les gens vous diront : "vous n'éditez pas tant de code GUI donc si ça vous fait gagner du temps, ce n'est pas tant de temps." Mais cette déclaration est extrêmement relative. Lorsque vous travaillez dans un environnement logiciel avec un modèle de processus qui nécessite des mises à jour constantes en raison de changements de modèle commercial, cette déclaration est fausse. De plus, vous passez la majorité de votre temps sur le contenu de votre essai en anglais, n'est-ce pas ? Donc cet argument dirait que les processeurs de texte WYSIWYG ne vous font pas gagner autant de temps, et une telle déclaration tomberait dans l'oreille d'un sourd car personne ne voudrait coder manuellement l'apparence de leur essai.
  3. Il n'y a rien qu'un GUI Builder ne peut pas faire qu'un code écrit à la main peut, alors que j'ai passé des heures à essayer de résoudre de petits défis avec du code GUI écrit à la main qui m'ont pris 1 minute dans un GUI builder.

Le GUI Builder de Netbeans, en particulier, s'est tellement amélioré au fil des ans que beaucoup des critiques qu'il a reçues (similaires à celles que Java a reçues) ont vraiment été neutralisées. C'est un excellent programme et c'est un excellent moyen de créer des interfaces riches en fonctionnalités et belles de manière efficace en termes de temps. Je recommande vivement un bon GUI Builder, en particulier celui de Netbeans.

Voilà, c'est dit.

Non, je ne travaille pas pour eux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X