Beeinträchtigen Designer-Tools die Programmiererfahrung? [geschlossen]

10

Ich habe mich in letzter Zeit umgesehen, insbesondere bei einigen der verfügbaren MS-Tools, und ich bemerke einen großen Fokus auf Designer-Tools und Assistenten. Nicht nur für die UI-Entwicklung, sondern für alles.

  • Entity Framework hat den Modellierer
  • RIA Services verfügt über die DomainService-Assistenten.
  • Workflow hat das ganze Workflow-Designer-Ding ... (Ich weiß nicht, habe es nicht wirklich benutzt)

Es gibt noch mehr, aber ich denke, Sie haben die Idee. Es gibt viele Designer-Tools. Mit einigen von diesen finde ich, dass:

Sie erschweren Angelegenheiten, die über die vorgeschriebenen Anwendungsfälle hinausgehen

(dh alle Tech-Demo-Videos)

Ich habe kürzlich einige dieser Technologien evaluiert und versucht, mit ihnen zu arbeiten. Am Ende muss ich genau analysieren, was die Designer, Modellbauer und Assistenten für mich tun. Ansonsten bin ich verloren, wenn ich es tatsächlich versuchen muss etwas mit was auch immer geschaffen wurde.

Dies ist ein Fall, in dem ich das Werkzeug bekämpfen oder seine Ausgabe so weit bekämpfen muss, dass ich das Ganze ohne es selbst hätte tun können - und ein viel besseres Verständnis dafür hatte, was vor sich geht. Ich finde das besonders ärgerlich mit dem Silverlight Designer und dem RIA Services Domain Service Assistenten.

Ich frage mich: "Was nützt dieses Tool, wenn ich sein Innenleben herausfinden oder die Hälfte seiner Ausgabe neu schreiben muss, um es zu verwenden?"

Sie sind nicht so schnell

Das Verkaufsargument dieser Tools ist die Steigerung der Produktivität. Dieser Punkt kann sich im Laufe der Zeit mit dem Tool ändern und gilt nicht unbedingt für UI-Designer (in einigen Fällen jedoch immer noch -> Ich sehe Sie als Silverlight-Designer an). . Ich finde, dass ich Code viel schneller hacken kann als Drag & Drop, Größenänderung, Verschiebung, was auch immer in einem Designer.

Die Benutzeroberfläche stört das Modell

Vielleicht bin ich es nur, aber wenn ich etwas verwende, das an ein UML-Designtool erinnert, verbringe ich mehr Zeit damit, alles so auszulegen, dass sich meine Linien nicht kreuzen und ich alles auf dem Bildschirm sehen kann, als zu modellieren, was ich bin versuche zu erreichen.

Sie machen keinen Spaß

Der halbe Grund, warum ich meinen Lebensunterhalt kodiere, ist, dass ich es genieße. Es macht keinen Spaß, auf Kontrollkästchen zu klicken, Comboboxen auszuwählen und dann alles zu reparieren, was herauskommt.

Ich scheine nicht allein zu sein

Die Community scheint diese Tools auch nicht zu wollen. Das beste Beispiel, an das ich im Moment denken kann, ist Entity Framework Code-First.

Deshalb frage ich:

  1. Verbessern Designer-Tools tatsächlich die Produktivität?
  2. Sind sie Spaßmörder?
  3. Bittet 'die Community' tatsächlich um mehr Designer-Tools oder denken die Anbieter nur, dass wir es sind?
Steven Evers
quelle

Antworten:

7

Ich vermute, dass gute Design-Tools die Produktivität verbessern und den "Spaß" nicht beeinträchtigen. Es ist jedoch nur eine Vermutung, da ich noch kein gutes Design-Tool gefunden habe.

Ich persönlich habe nicht nach Designwerkzeugen gefragt.

Dietbuddha
quelle
2
+1 Ich mag es definitiv, "noch kein gutes Design-Tool zu finden". obwohl ich vielleicht "besser als die graue Substanz zwischen meinen Augäpfeln" hinzugefügt hätte.
Ken Henderson
2
+1 Assistenten sind nur nützlich, solange das, was Sie tun, zu dem Modell passt, das sie verkörpern. Weil ich meistens dafür bezahlt werde, seltsame Dinge zu tun, stören sie mich normalerweise nur. Das einzige Design-Tool, das mir jemals wirklich gefallen hat, war (machen Sie sich bereit für einen Schock von diesem Microsoft-Nicht-Fan) die grafische Datenbank und der Abfragegenerator in MS Access. Es hat gut funktioniert, da relationale Datenbanken und SQL sowohl konzeptionell ziemlich einfach als auch gut definiert sind, sodass das Designtool fast alles verarbeiten kann, was Sie jemals tun möchten.
Bob Murphy
Alles, was Sie selbst bauen, um Ihnen bei einer Aufgabe zu helfen, ist ein "gutes Entwurfswerkzeug". Dies schließt Ihren Editor, Ihren Compiler, Ihren Debugger, Ihre persönlichen Bibliotheken usw. ein. Das Problem bei den meisten "Payware" ist, dass sie allgemein genug für alle sein muss, sodass sie normalerweise nicht gut zum Problem passt. Und sie machen sich nie die Mühe, es schön spielen zu lassen! Folgen Sie bitte der Unix-Philosophie. Ich möchte nicht im ummauerten Garten-Toolkit der MS sein.
Spencer Rathbun
4
  1. Ich denke es kommt wahrscheinlich darauf an. Wenn Sie ein ziemlich unerfahrener Entwickler sind, ist die Verwendung der Designtools wahrscheinlich produktiver als das Eingeben. Ich bin mir ziemlich sicher, dass ich in meinen frühen VB6-Tagen mit dem Designer produktiver war, als ich es von Hand herausgekurbelt hätte. Die andere zu berücksichtigende Sache ist, wie sich die Technologie (zumindest wie die IDE sie präsentiert) für die manuelle Bearbeitung eignet. VB6 und .NET WinForms sicherlich nicht (oder besser gesagt, Sie möchten die "generierte" Codedatei (oder einen Teil davon) wahrscheinlich nicht von Hand bearbeiten. Mit WPF und ASP.NET denke ich, dass ein ziemlich unerfahrener Entwickler mit dem beginnen wird Designer, aber schnell mit der direkten Bearbeitung von XAML / ASP fortfahren. Sobald Sie wissen, was Sie tun, ist es sicherlich schneller, das Markup direkt zu bearbeiten. Wenn Sie an EF v1.0 zurückdenken,

  2. Kommt darauf an, ob es Spaß macht, mit dem Markup zu arbeiten. WPF und ASP (.NET) können Spaß machen. VB6 / WinForms - Nein, Sie möchten die generierten Codeabschnitte nicht mehr als nötig bearbeiten.

  3. Ich glaube nicht, dass die Community dies explizit tut. Obwohl der Designer beim Erlernen von etwas Neuem das Schlucken in Lernblöcken erleichtern kann.

Ken Henderson
quelle
2

wie immer kommt es darauf an

Als ich mich zum ersten Mal mit Webdiensten befasste, hatte Java ein 50-seitiges Tutorial und .NET einen Assistenten. Ratet mal, welches wurde verwendet?

Steven A. Lowe
quelle
1

Gleich hier kein Designwerkzeug.

Ich entwerfe die Datenbank-ERD auf Papier und schreibe einen Deployer, der die Anweisungen zum Erstellen einer Tabelle ausgibt, damit ich sie nach Belieben löschen und neu erstellen kann. Hilft auch bei der Datenbankversionierung.

Ich finde, dass 11x17 (A3) -Papier ein großartiger Ort sein kann, um sehr komplexe Systeme zu entwerfen. Besorgen Sie sich einen guten Radiergummi und Bleistifte (ich bevorzuge Staedtler ).

Christopher Mahan
quelle
1

Aus Sicht des Anbieters scheinen all diese ausgefallenen Designer-Tools einen ähnlichen Zweck zu erfüllen wie Rabatt- / kostenlose Studentenlizenzen. Die Idee ist, Ihnen zu ermöglichen, etwas mit minimalem Aufwand und Kosten zu erstellen . Sobald Sie investiert sind, setzen sie darauf, dass Sie lernen, Ihre Fähigkeiten mit ihren Werkzeugen zu erweitern, anstatt die anderer zu lernen.

Das heißt nicht, dass die Tools keine legitimen produktiven Verwendungszwecke haben. Es sollte wertvoll sein, generierten Code zu untersuchen und daraus zu lernen. Wie Ken Henderson bemerkte, ist der Code leider oft nicht lesbar und nicht als Vorlage für zukünftige Arbeiten gedacht. Ich erinnere mich an mehrere Abschnitte in Programming WCF Services , in denen der Autor erklärt, wie Code manuell geschrieben oder von Visual Studio generiert wird. Die generierte Option erfordert zwangsläufig einen Folgeabschnitt zum Entfernen von Fremdcode.

ajk
quelle
0

Verbessern Designer-Tools tatsächlich die Produktivität?

Sie können, solange Ihr Projekt einfach und nicht zu komplex für sie ist. Meiner Erfahrung nach stößt du an die Wand, sobald du versuchst, ein Problem der realen Welt zu implementieren / zu lösen.

Sind sie Spaßmörder?

WF (Workflow) & WPF waren lustig, aber auch umwerfend, als der VS 2008 alle 30 Minuten abstürzte.

Bittet 'die Community' tatsächlich um mehr Designer-Tools oder denken die Anbieter nur, dass wir es sind?

Viele der in letzter Zeit von MS veröffentlichten Tools scheinen verzweifelte Versuche zu sein, die Entwickler zu halten. Der Kampf geht jetzt auf dem Smartphone-Markt weiter. Wer wird das Herz von Entwicklern, MS, Google oder Apple gewinnen?

Amir Rezaei
quelle
0

Das war schon immer so, selbst damals haben wir zwischen Entwicklern, die nur wissen, wie man auf die Assistenten klickt, und Entwicklern, die wussten, welchen Code die Assistenten generiert haben und ihn für die Randfälle ändern konnten, unterschieden.

Dass Sie noch mehr Tools, Assistenten und Designer haben, die alles unter der Decke tun, um sich davon abzuhalten, sich an den scharfen Stellen zu schneiden, ist ein Vorteil für Entwickler, die entweder nicht wissen wollen oder nicht die Breite haben Erfahrung oder Können, um den generierten Code zu verstehen. Ich stelle mir vor, es gibt einen Sweet Spot zwischen dem, was der Computer für Sie tun soll, und dem, was Sie selbst tun müssen, da die Alternative darin besteht, Sprachen zu programmieren, die ausschließlich auf dem Ziehen und Ablegen von Blöcken auf ein Formular basieren. (Früher habe ich an so einer domänenspezifischen Umgebung gearbeitet, ich würde sie nicht verwenden wollen!)

gbjbaanb
quelle