In einem Ein-Mann-Projekt (Webseiten oder Desktop-Anwendungen), bei dem Sie sowohl der Designer als auch der Entwickler sind, was ist besser, zuerst Code zu entwerfen oder zu schreiben?Was ist besser, zuerst zu tun, die Schnittstelle zu entwerfen oder Code zu schreiben?
Antwort
Mit Schnittstelle Ich vermute, Sie meinen die Benutzeroberfläche, im Gegensatz zu einer API. Ich entwerfe immer zuerst die Schnittstelle. Wenn ich kodiere, bin ich faul - ich mache, was auch immer den Job mit der geringsten Anstrengung erledigt. Dies führt zu Interfaces, die keinen Sinn ergeben, nur weil das der einfachste (oder sauberste) Weg war, dies im Code zu tun. Aber bevor Sie den Code geschrieben haben, sind Sie unvoreingenommen und treffen bessere Entscheidungen darüber, was eine gute Schnittstelle sein wird.
Allerdings - sie werden immer noch schlechte Entscheidungen sein. Sie können denken, Sie wissen, was sich natürlich anfühlt, aber Sie nicht. Teste es an Leuten! Beobachten Sie, was sie tun, wie sie versuchen, Ihre Software zu benutzen, stellen Sie ihnen Fragen und passen Sie sie entsprechend an. Wenn Sie dies häufig tun, ist es egal, ob Sie zuerst entwerfen oder zuerst programmieren. So entsteht ein erstklassiges Produkt.
+1, weil Sie von UI starten. – Simone
Normalerweise entwerfe ich das Projekt auf dem Papier (oder mit Diagrammwerkzeugen), schreibe dann den Kernteil und schließlich die Benutzerschnittstelle. GUI ist die letzte. So können Sie Tests zuerst mit dem Logikteil des Programms und erst danach mit dem Präsentationsteil machen.
Nehmen wir an, die Entwicklungsrichtung scheint vom Zentrum einer Zwiebel zum äußeren Teil zu gehen.
Aus einem gesunden Menschenverstandsperspektive würde ich sagen, ein Mock-up-Design (Think Pen und Papier) ist am besten zu beginnen mit. Definieren Sie, was das Programm/die Site tun soll und wie es aussehen soll, ohne ins Detail zu gehen. Wenn Sie von Anfang an ein klar festgelegtes Ziel in Bezug auf Funktionen und Design auf einer kleineren Projektdurchführungsbestellung haben, sollte das kein großes Problem sein.
Ich muss jedoch sagen, dass ich immer den Code vor dem Design, und ich selten Mock-up-Entwürfe erstellen. Auch folge ich nie meinem eigenen Rat.
Was genau codierst du * zu * wenn du kein Design hast? Ich stimme zu, dass es manchmal ausreichend ist, sich Gedanken zu machen oder auf dem Papier zu sein, aber ich sehe nicht, wie man ohne Code Code schreiben kann. –
Vielleicht ist es nicht der richtige Weg, den Code vor dem Design zu schreiben.Stattdessen fange ich normalerweise an, zuerst den Backbone und mehr technische Implementierungen zu programmieren, und dann erstelle ich eine grundlegende Benutzeroberfläche, um diese Funktionen zu testen. Den ganzen Code vor dem Design zu beenden ist offensichtlich ein ziemlich dummer Weg, um darüber zu gehen. Aber wie ich schon sagte, ich glaube nicht, dass ich es so mache, wie ich es sollte (nach meinem eigenen Rat). –
Das ist denke ich, einen gemeinsamen Schritt für Schritt Ansatz:
- Finden Sie heraus, was die Anforderungen sind.
- Machen Sie ein Modell der Anwendung und zeigen Sie es Kunden oder Kollegen.
- Erstellen Sie ein globales technisches Design. Listen Sie die zu verwendenden Technologien auf und geben Sie einen Überblick über die zu erstellenden Komponenten.
- Dann starten Sie die Codierung oder ein detaillierteres Design.
+1, weil Sie von UI starten. – Simone
Ich schlage vor, dass Sie einen Blueprint Ihrer Benutzerschnittstelle dann gleichzeitig die Kodierung und die Schnittstelle machen. Es wird besser sein, da Sie die Ausgabe sofort erhalten können und auch ändern können.
Dies ist eine Art HTML-Seitentest.
Ich denke, mit dem Ausdruck "Gestaltung der Schnittstelle" meinen Sie die grafische Schnittstelle. Wie PNL lehrt, werden Sie mit besseren Dingen umgehen, die Sie bereits sehen, daher hilft die Visualisierung beim Entwurf eines neuen Projekts.
Deshalb beginne ich Projekte nach meiner ersten visuellen Idee, indem ich die Modelle der Seiten, die ich genau kenne, mit Stift und Papier zeichne (ich freue mich zu lesen, dass viele geschätzte Kollegen das auch tun).
Dies ermöglicht mir, die Anwendungsentitäten (die wahrscheinlich Klassen sind) und Funktionalitäten (die direkt in Methoden übersetzt werden können) zu konzipieren.
An dieser Stelle schreibe ich die Programmierschnittstelle, die für mich der wichtigste Teil einer Anwendung ist, sowohl beim Neubeginn als auch für zukünftige Nacharbeit.
Normalerweise ist es kein völlig neuer Programmierstil, da viele Programmierer ihre bevorzugten Muster und Syntax und Code zur Wiederverwendung verwenden oder von dem Framework/der Umgebung, an der sie arbeiten müssen, zu bestimmten Lösungen getrieben werden, aber ich halte sie für eine zentrale Aufgabe .
Bevor ich den Code schreibe, entwerfe ich auch die DB, die auch an Methoden der unteren Ebene der von mir geschriebenen Interface-Methoden delegiert ist (die 90% der Projekte, an denen ich gearbeitet habe, war DB-basiert) Mir fallen Attribute oder Beistelltische ein, die die von der Anwendung behandelten Informationen besser ergänzen oder Funktionalitäten verbessern können.
Wenn ich Zeit habe, mache ich auch einige Tabellen und Diagramme mit Excel, die die gesamten CRUD-Aufgaben für jede Tabelle definieren (offensichtlich braucht nicht jede Tabelle alle CRUD-Aufgaben).
Dies erlaubt mir, in ein paar Zeit auch die allgemeinen SQL-Abfragen zu schreiben, was auch die Arbeit des Schreibens von Code reduziert und vermeidet, die Aufmerksamkeit auf andere SQL-Dialekte zu richten.
Ich beginne Code als letzte Aufgabe zu schreiben, und an dieser Stelle ist die Arbeit erledigt.
Das Schreiben der Logik der Anwendung mit dem erläuterten Hintergrund ermöglicht es mir, nur in den Hauptsprachen zu denken und zu schreiben, die für die Realisierung des Projekts ausgewählt wurden. In der Regel handelt es sich um PHP für die serverseitige Verarbeitung und JavaScript für die Client-GUI.
Ich experimentierte die Wahrheit eines Satzes, den ein Meister häufig benutzte: Eine gute Arbeit ist 90% Planung, 10% Ausführung.
Ich stimme voll und ganz zu: Wenn eine gute Planung gemacht ist, ist der Rest einfach die Verpackung aller Teile.
Fröhliche Codierung und ein glückliches neues Jahr! :)
Normalerweise mache ich zuerst alle Wireframes der Bildschirme, dann das Datenbankdiagramm, dann code ich, und dann mache ich das Frontend.
Denk logisch darüber nach - das Frontend/Interface ist der Grund, warum die Datenbank und dein Code da sind, nicht umgekehrt.
Ich sehe so viele Menschen viel zu viel Zeit auf Architektur und Datenbank-Design, während das Frontend vernachlässigt wird.
Dem Endanwender ist es egal, wie Ihre Datenbank aussieht, welchen Code Sie schreiben oder wie viele Ebenen Sie haben.
"Als wir mit dem Bau unseres Hauses fertig waren und eingezogen waren und die Houswarming-Party hatten, haben wir endlich einen Architekten engagiert, er hat ein tolles Design gemacht". Kannst du es spüren ;)? –
Während ich glaube, dass Sie mit der Benutzeroberfläche beginnen sollten, gehe ich davon aus, dass die Programmlogik ziemlich einfach ist, wie es bei vielen Webanwendungen der Fall ist. Wenn ich schwierige, komplexe Algorithmen habe, beginne ich am anderen Ende, weil das Design dieses Codes mein gesamtes Projekt beeinflusst, während die Benutzeroberfläche normalerweise enthalten sein kann. Es ist wichtig, dass die Logik einfach und klar formuliert wird, damit sie aufrechterhalten werden kann. Wenn Sie beispielsweise eine Programmiersprache erstellen, beginnen Sie mit dem Kernkalkül, nicht mit der Syntax. – luqui