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:
- Verbessern Designer-Tools tatsächlich die Produktivität?
- Sind sie Spaßmörder?
- Bittet 'die Community' tatsächlich um mehr Designer-Tools oder denken die Anbieter nur, dass wir es sind?
quelle
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,
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.
Ich glaube nicht, dass die Community dies explizit tut. Obwohl der Designer beim Erlernen von etwas Neuem das Schlucken in Lernblöcken erleichtern kann.
quelle
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?
quelle
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 ).
quelle
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.
quelle
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?
quelle
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!)
quelle