¿Es una mala práctica utilizar herramientas de diseño de GUI con generación de código para la programación de aplicaciones en Java / C ++?

8

En una pregunta de stackOverflow, he leído que usar un programa de diseño de GUI puede generar mucho código desordenado y se considera una mala práctica a menos que esté haciendo programas más pequeños.

Mi pregunta es por qué y cómo. ¿Es malo usar un programa de diseño GUI? ¿Por qué?

Detalles adicionales:

  • Programación en una plataforma Windows;
  • Solo programación en C ++ / Java para programas de Windows.
  • Para IDE, he estado usando Visual Studio 2010 (no la edición express) ya que viene con el diseñador GUI.
Bugster
fuente
¿Podría publicar un enlace a la pregunta a la que se refiere?
FrustratedWithFormsDesigner
66
OMG, por el título que te había inferido cuando hablabas de los otros diseñadores de GUI ... las personas que hacen diseño de GUI . Y hablar sobre usarlos como una mala práctica, bueno, fue bastante impresionante.
ZJR
wow yo también ZJR, voy a actualizar ese título!
Michael Durrant
Hasta que ZIR lo mencionó, ni siquiera sabía que había tales cosas. Tu aprendes algo nuevo cada dia.
Bugster

Respuestas:

12

No es una mala práctica utilizar el diseñador de GUI para diseñar sus formularios, GUI. Esp en Visual Studio. Están allí para este propósito y se usan ampliamente.

En desarrollo web, es una historia diferente. Es una mala práctica usar el diseñador de GUI (por ejemplo, Microsoft Front Page ahora reemplazado por WebMatrix). La razón

  • Proporcionan una gran cantidad de código adicional que realmente no necesita. Básicamente crean basura.
  • Aumentan el tamaño del documento html. Lo cual es ALTAMENTE indeseable para un sitio de alta gama que tiene una gran cantidad de visitas.
  • Son difíciles de mantener debido a la gran cantidad de código basura adicional

Entonces, en cuanto a su pregunta, no es una mala práctica usar GUI en formularios de diseño especialmente en Visual Studio. De ningún modo.

Sin nombre
fuente
Yo diría que sería una mala práctica NO utilizar el diseñador vs para aplicaciones de escritorio.
Andy
5

Para un proyecto grande y mediano, no deben usarse, ya que el código que generan no es muy agradable de mantener. A menos que no planee limpiar el código generado por un diseñador de GUI, es mejor sin él.

Sin embargo, son muy buenos en los siguientes casos:

  • para crear algo rápido y sucio (tal vez para un prototipo)
  • para probar cosas nuevas y ver cómo se vería
BЈовић
fuente
Creo que con VisualStudio, es extremadamente raro mantener y limpiar manualmente el código generado.
FrustratedWithFormsDesigner
@FrustratedWithFormsDesigner No tengo idea. Nunca utilicé visual studio. Mi experiencia es en Linux con herramientas qt, donde el código generado no es tan malo, pero tampoco es bueno. De todos modos, es posible limpiarlo
BЈовић
44
Nunca debe tocar un código generado a mano. Entonces, no importa cómo se vea el código, porque lo mantiene con el diseñador. El diseñador que solo crea inicialmente el código, pero lo que necesita editarlo a mano no vale su nombre y es un problema, pero todos los razonables (por ejemplo, Qt, VisualStuido) generan una fuente separada que nunca toca a mano. Por lo general, el código ni siquiera está versionado, sino que se genera como parte de la compilación.
Jan Hudec
2
Sí. Una herramienta que genera código y espera que la mantengas manualmente después se rompe horriblemente y causará muchos problemas, porque el código inevitablemente tendrá algunas verrugas. Esto se aplica a cualquier generador de código; El modelador ORM o UML que funciona de esta manera causará problemas de la misma manera. Pero ese no es el caso de los diseñadores modernos de GUI. .NET y Qt generan el código para que defina la lógica en una fuente separada y Gtk ni siquiera genera código, sino que interpreta el archivo del diseñador en tiempo de ejecución. La mayoría de las plataformas móviles se comportan de manera similar.
Jan Hudec
1
@PeterTaylor: Entrar en el control de versiones no es el problema aquí. Tener que editarlo es. El diseñador de WinForms genera un código que debe entrar en el control de versiones, porque el diseñador mantiene la información directamente como fuente de C #. Pero no tiene que ser editado a mano, porque es una partialclase y el código escrito manualmente va en archivos separados. Sí, los diferenciales son tan feos como cualquier otro dato mantenido por cualquier diseñador, pero eso no es un problema en la práctica.
Jan Hudec
4

En general, no creo que los diseñadores de GUI sean una mala práctica. El principal beneficio que creo que obtendría al usar un buen diseñador de GUI:

  • Tiempo de desarrollo y modificación de GUI más rápido.
  • Puede ver cómo se verá la interfaz de usuario sin tener que compilar y ejecutar el programa.

Posibles problemas con los que podría encontrarse:

  • Los elementos de IU dinámicos que se generan / administran en tiempo de ejecución probablemente no sean posibles con los diseñadores de GUI
  • He tenido problemas con controles GUI más complejos, como controles genéricos personalizados en VisualStudio.
  • El código generado también podría ser una fuente potencial de mucho dolor y problemas, y si intenta modificarlo a mano, el diseñador de la GUI ya no podrá dejar que lo designe.

Por supuesto, si no sabe cómo usar adecuadamente una herramienta de este tipo, podría ocasionar problemas muy rápidamente.

FrustratedWithFormsDesigner
fuente
3

Depende mucho de la herramienta o del entorno de programación que vaya a utilizar.

La mayoría de las veces, un buen diseñador de GUI (un tipo de generador de código) es bueno, ya que le permite automatizar la mayor cantidad de código posible y, al mismo tiempo, le permite codificar, manualmente, un código especial, que no puede automatizarse .

Los diseñadores de GUI, por lo general, le permiten automatizar cosas relacionadas con la posición, el color, el formato, el estilo y dejar la lógica o la programación de los controles al programador.

Comentario adicional: Lo mismo ocurre con las herramientas ORM, también son generadores de código.

umlcat
fuente
1

Necesita comprender lo que hace su código. Si alguien viene a ti y te dice "¿Por qué sucede esto?", "Visual Studio lo hizo por mí, no tengo idea", no es una respuesta aceptable. Siempre que pueda encontrar y resolver sus propios errores de programa, no hay problema con un diseñador de GUI, pero una vez que se encuentre luchando contra el programa y no pueda seguir la lógica, debe alejarse del WYSIWYG.

Yamikuronue
fuente