Ist es eine schlechte Praxis, GUI-Designer-Tools mit Codegenerierung für die Anwendungsprogrammierung in Java / C ++ zu verwenden?

8

In einer stackOverflow-Frage habe ich gelesen, dass die Verwendung eines GUI-Designerprogramms viel chaotischen Code erzeugen kann und als schlechte Praxis angesehen wird, es sei denn, Sie erstellen kleinere Programme.

Meine Frage ist warum und wie. Ist es schlecht, ein GUI-Designerprogramm zu verwenden? Warum?

Zusätzliche Details:

  • Programmieren auf einer Windows-Plattform;
  • Nur Programmieren in C ++ / Java für Windows-Programme.
  • Für IDE verwende ich Visual Studio 2010 (nicht die Express Edition), seit es mit dem GUI-Designer geliefert wird.
Bugster
quelle
Könnten Sie einen Link zu der Frage posten, auf die Sie sich beziehen?
FrustratedWithFormsDesigner
6
OMG, aus dem Titel hatte ich Sie abgeleitet, wo Sie über die anderen GUI-Designer gesprochen haben ... die Leute, die GUI-Design machen . Und darüber zu sprechen, sie als schlechte Praxis zu verwenden, war ziemlich großartig.
ZJR
wow ich auch ZJR, ich werde diesen Titel aktualisieren!
Michael Durrant
Bis ZIR es erwähnte, wusste ich nicht einmal, dass es solche Dinge gibt. Sie lernen jeden Tag etwas Neues.
Bugster

Antworten:

12

Es ist keine schlechte Praxis, den GUI-Designer zum Entwerfen Ihrer Formulare zu verwenden. Besonders in Visual Studio. Sie sind zu diesem Zweck da und werden ausgiebig genutzt.

In der Webentwicklung ist das eine andere Geschichte. Es ist eine schlechte Praxis, den GUI-Designer zu verwenden (z. B. Microsoft Front Page, das jetzt von WebMatrix ersetzt wird). Der Grund

  • Sie bieten eine Menge zusätzlichen Code, den Sie nicht wirklich benötigen. Sie schaffen im Grunde Müll.
  • Sie vergrößern das HTML-Dokument. Welches ist sehr unerwünscht für High-End-Site, die eine große Anzahl von Treffern.
  • Sie sind aufgrund des zusätzlichen Junk-Codes schwer zu warten

Was Ihre Frage betrifft, ist es keine schlechte Praxis, die grafische Benutzeroberfläche in Entwurfsformularen zu verwenden, insbesondere in Visual Studio. Ganz und gar nicht.

Kein Name
quelle
Ich würde sagen, es wäre eine schlechte Praxis, den vs-Designer NICHT für Desktop-Anwendungen zu verwenden.
Andy
5

Für ein großes und mittleres Projekt sollten sie nicht verwendet werden, da der von ihnen generierte Code nicht sehr gut zu pflegen ist. Wenn Sie nicht vorhaben, den von einem GUI-Designer generierten Code zu bereinigen, sind Sie ohne ihn besser.

In den nächsten Fällen sind sie jedoch sehr gut:

  • etwas schnelles und schmutziges zu schaffen (vielleicht für einen Prototyp)
  • neue Dinge auszuprobieren und zu sehen, wie es aussehen würde
BЈовић
quelle
Ich finde, dass es mit VisualStudio äußerst selten ist, den generierten Code manuell zu pflegen und zu bereinigen.
FrustratedWithFormsDesigner
@FrustratedWithFormsDesigner Keine Ahnung. Nie benutztes visuelles Studio. Meine Erfahrung ist unter Linux mit qt-Tools, wo der generierte Code nicht so schlecht, aber auch nicht gut ist. Wie auch immer, es ist möglich, es aufzuräumen
BЈовић
4
Sie sollten niemals einen generierten Code von Hand berühren. Dann spielt es keine Rolle, wie der Code aussieht, da Sie ihn beim Designer pflegen. Designer, die den Code nur anfänglich erstellen, ihn aber dann manuell bearbeiten müssen, sind seinen Namen nicht wert und problematisch, aber alle vernünftigen (z. B. Qt, VisualStuido) generieren eine separate Quelle, die Sie niemals von Hand berühren. Normalerweise wird der Code nicht einmal versioniert, sondern als Teil des Builds generiert.
Jan Hudec
2
Ja, ich will. Ein Tool, das Code generiert und erwartet, dass Sie ihn anschließend manuell warten, ist schrecklich kaputt und verursacht viele Probleme, da der Code unweigerlich einige Warzen aufweist. Dies gilt für jeden Codegenerator. ORM- oder UML-Modellierer, die so arbeiten, verursachen auf die gleiche Weise Probleme. Dies ist jedoch bei modernen GUI-Designern nicht der Fall. .NET und Qt generieren den Code, sodass Sie die Logik in einer separaten Quelle definieren, und Gtk generiert nicht einmal Code, sondern interpretiert die Designer-Datei zur Laufzeit. Die meisten mobilen Plattformen verhalten sich ähnlich.
Jan Hudec
1
@PeterTaylor: Der Einstieg in die Versionskontrolle ist hier nicht das Problem. Es muss bearbeitet werden. Der WinForms-Designer generiert Code, der in die Versionskontrolle übernommen werden muss, da der Designer die Informationen direkt als C # -Quelle verwaltet. Es muss jedoch nicht von Hand bearbeitet werden, da es sich um eine partialKlasse handelt und manuell geschriebener Code in separaten Dateien gespeichert wird. Ja, die Unterschiede sind so hässlich wie alle anderen von Designern gepflegten Daten, aber das ist in der Praxis kein Problem.
Jan Hudec
4

Im Allgemeinen halte ich GUI-Designer nicht für eine schlechte Praxis. Der Hauptvorteil, den Sie meiner Meinung nach durch die Verwendung eines guten GUI-Designers erhalten würden:

  • Schnellere Entwicklungs- und Änderungszeit für die GUI.
  • Sie können sehen, wie die Benutzeroberfläche aussehen wird, ohne das Programm kompilieren und ausführen zu müssen.

Mögliche Probleme, auf die Sie stoßen könnten:

  • Dynamische UI-Elemente, die zur Laufzeit generiert / verwaltet werden, sind mit GUI-Designern wahrscheinlich nicht möglich
  • Ich hatte Probleme mit komplexeren GUI-Steuerelementen wie benutzerdefinierten generischen Steuerelementen in VisualStudio.
  • Generierter Code kann auch eine potenzielle Quelle für viele Schmerzen und Probleme sein. Wenn Sie versuchen, ihn von Hand zu ändern, kann der GUI-Designer Sie möglicherweise nicht mehr entwerfen lassen.

Wenn Sie nicht wissen, wie man ein solches Tool richtig einsetzt, kann dies natürlich sehr schnell zu Problemen führen.

FrustratedWithFormsDesigner
quelle
3

Es hängt sehr davon ab, welches Tool oder welche Programmierumgebung Sie verwenden werden.

In den meisten Fällen ist ein guter GUI-Designer (eine Art Codegenerator) gut, mit dem Sie so viel Code wie möglich automatisieren und gleichzeitig speziellen Code manuell codieren können, der nicht automatisiert werden kann .

Mit GUI-Designern können Sie normalerweise Dinge automatisieren, die sich auf Position, Farbe, Format, Stil beziehen, und die Logik oder Programmierung der Steuerelemente dem Programmierer überlassen.

Zusätzlicher Kommentar: Gleiches gilt für ORM-Tools, sie sind auch Codegeneratoren.

umlcat
quelle
1

Sie müssen verstehen, was Ihr Code tut. Wenn jemand zu Ihnen kommt und sagt "Warum passiert das?", Ist "Visual Studio hat das für mich gemacht, ich habe keine Ahnung" keine akzeptable Antwort. Solange Sie Ihre eigenen Programmfehler finden und beheben können, gibt es kein Problem mit einem GUI-Designer. Wenn Sie jedoch feststellen, dass Sie gegen das Programm kämpfen und der Logik nicht folgen können, müssen Sie sich vom WYSIWYG zurückziehen.

Yamikuronue
quelle