Wie viel Planung tun Sie vor dem zu Codieren beginnen?

stimmen
12

Wenn Sie ein neues Projekt fangen, wie planen Sie dafür oder wie lange dauert es?

Pseudo-Code? Flowcharts?

Haben Sie versuchen, alle Klassen im Voraus zu denken?

TBH, ich plane nie etwas. Ich gerade daran und denken Sie an Lösungen als Probleme auftreten. Vor allem, weil die wenigen Male habe ich versucht, im Voraus planen, würde ich immer etwas größeren, vergessen und somit würde die Logik der Planung fehlerhaft sein.

Veröffentlicht am 11/06/2009 um 22:40
quelle vom benutzer
In anderen Sprachen...                            


16 antworten

stimmen
11

Viel weniger, als ich sollte

Ich tauche immer, verschmutzen und dann erkennen, dass ich ein Chaos gemacht haben. Dann gehen Sie zurück und planen, und machen Sie es richtig.

aber die chaotisch Fehler Phase ist mir eine große Ideen , die ich nicht , obwohl der durch einen formalen Design - Prozess haben.

Bearbeiten wir hauptsächlich in dieser Art von der Tastatur zerschlagenen Verwirrungen bei größerem / Areal zu spielen. Interessant zu sehen , wie weit die Dinge , bevor Sie erkennen , dass Ihre ‚es in meinem Kopf , so dass es in Ordnung ist‘ Design 100% fehlerhaft ist.

Beantwortet am 11/06/2009 um 22:44
quelle vom benutzer

stimmen
1

Es kommt darauf an. Die meisten Dinge, die ich schreiben sind relativ einfach und eine größere Design wird Schritt für Schritt aufgebaut und ich merke, was noch fehlt und was schon fertig ist. Es gab ein paar mehr haarigen Dinge, die umfangreiche Skizzierung und dachten erforderlich richtig zu machen, aber ich habe noch nicht über viele architektonischen Probleme kam, die so (noch jung und Sachen) erforderlich. Meist waren die kniffligen Rechen Dinge.

Beantwortet am 11/06/2009 um 22:44
quelle vom benutzer

stimmen
1

Bei meinem Praktikum im vergangenen Jahr war mein Manager angenehm überrascht, verwenden ich Ablaufdiagramme für ein Problem. Er dachte, es in diesen Tagen eine verlorene Kunst mit Studenten war. Ich war nicht so angenehm überrascht, dass sie vom berücksichtigt wurden.

Wie auch immer, es hängt von der Timeline des Projektes für mich, Termine sind das Wichtigste natürlich.

Beantwortet am 11/06/2009 um 22:44
quelle vom benutzer

stimmen
6

Wahrscheinlich nicht die beste Technik ... aber ... ich plane in Code .

Entdecke ich oft Klasse / Methoden / etc. dass ich nur durch sie auf diese Weise zu tun. Mit dieser sagte, gehe ich davon immer, dass meine Planung Code wird nicht die endgültige Lösung sein.

Zusätzlich werde ich nach unten Notizen schreiben „wichtige Funktionen“ und „Moll / Wunsch-Features“ Details.

Beantwortet am 11/06/2009 um 22:45
quelle vom benutzer

stimmen
0

Wenn auf ein Problem jeder Größe nehmen, plane ich immer auf sie mindestens zweimal zu schreiben.

Beantwortet am 11/06/2009 um 22:45
quelle vom benutzer

stimmen
3

Es hängt alles davon ab, wie groß das Projekt es. Manchmal könnte es Monate dauern, bis nur alle Anforderungen zu sammeln und wissen genau, was sie tun soll.

Wenn es um den codierenden Teil kommt, es hängt alles davon ab, wie kompliziert es ist. Wenn es extrem kompliziert ist, will ich durch einfaches Herausziehen beginnen, was ich will, es zu tun. Dann werde ich meinen Pseudo-Code in den Kommentaren tippen. Dann werde ich diese Kommentare Code um.

Wenn es jedoch einfach Codierung. Ich werde in der Regel nur schreiben, was auf meinem Kopf und testen.

Wir verwenden einen sehr agilen Ansatz, dass wir in wichtigen Teilen arbeiten und natürlich Dinge kommen immer in den Anforderungen Pop-up. So werden wir für diejenigen empfangen, wie sie kommen. Du wirst nie ganz genau wissen, was Sie am Anfang der Schöpfung Zyklus erstellen möchten.

Das ist meine Meinung.

Beantwortet am 11/06/2009 um 22:46
quelle vom benutzer

stimmen
1

Die meiste Zeit, ich zumindest versuchen, eine Gesamtdarstellung zu haben (auch nur in meinem Kopf), wie das Modul / System funktionieren wird. Ich mag wissen, was ich tun werde, bevor ich es tun. Es macht die Programmierung einfacher und schneller (wir in der Regel unter Zeit sind, wo ich arbeite). Jedes Mal, wenn ich das nicht tun, ich in Probleme laufen, die mich führt in der Regel zu Code herausziehen und Putting ist woanders. Ich gebe zu, meinen Prozess kam durch bittere Erfahrung, und ich habe wirklich sehr gut zusammen mit globalem Fund regex in Code verwenden und ersetzen.

Jemand anderes einen guten Punkt gebracht, manchmal haben Sie ein wirklich großes System und das wird schwierig. Ich versuche, und brechen sie in Stücke schneiden. Ich werde auf etwas arbeiten und bekommen es konkretisiert, und die Arbeit an etwas anderes für eine Weile und sehen, wie sie interagieren. Auch bei der Planung voraus, ich vermisse Dinge und müssen Code Refactoring, aber zumindest bin ich nicht alles nochmal, da ich zumindest eine Art eines Arbeitsplans hatte.

Beantwortet am 11/06/2009 um 22:47
quelle vom benutzer

stimmen
1

Es hängt davon ab, wie komplex das Problem ist, dass Sie versuchen zu lösen. Wenn Sie auf einem großen Programmierprojekt nehmen, müssen Sie ein gewisses Maß an Planung haben, bevor Sie beginnen. Wenn Sie dies nicht tun, erhalten Sie schrecklich in Details von Sachen verloren, die nicht ganz mit den anderen Teilen in kürzester Zeit kommunizieren.

Basicly, versuchen, eine Vogelperspektive der Probleme müssen lösen, um Sie zu erhalten. Sehen Sie, wenn keine der Probleme klein genug, dass man sich lösen kann, und herauszufinden, was könnte es mit dem Rest Ihrer Lösung kommunizieren müssen. Betrachten Sie es als eine Black-Box mit einer API für die Außenwelt.

Nachdem Sie alle Blöcke herausgefunden haben, ob Sie das Problem in kleinere Teilprobleme aufteilen müssen, oder dass Sie eine detaillierte genug Ansicht des gesamten Projekts, die Sie mit dem Code beginnen.

Meine Erfahrung ist, dass die Planung hilft Ihnen, Probleme in Zukunft zu vermeiden, machen Sie denken mehr darüber, wie der Code soll in Zukunft weiter wachsen, wenn Sie etwas usw. hinzufügen müssen

In den meisten Fällen werden Sie die Zeit sparen Sie bei der Planung ausgegeben, wenn Sie debuggen oder das Projekt erstreckt. Außerdem bedeutet eine grobe Layout des Projekts hat, wird es leichter sein, Hilfe zu erhalten Aufbau der schwarz-Boxen Sie benötigen, so dass Sie nicht nur sich selbst mit mehr Menschen daran arbeiten.

Beantwortet am 11/06/2009 um 22:47
quelle vom benutzer

stimmen
1

Je nach Komplexität des Projekts, beginne ich in der Regel mit Kissen und Papier und schreiben, um eine Spezifikation, und einige Pseudo-Code des Steuerflusses. Dann kann ich immer auf das zurückgreifen, während ich Codierung bin. Es macht es einfacher und erfordert weniger Refactoring, weil Sie das Problem durch nicht glaubten.

Beantwortet am 11/06/2009 um 22:47
quelle vom benutzer

stimmen
1

Persönlich kommt es auf den Umfang und Komplexität des Projekts, wie viele Leute, die ich mit drauf bin zu arbeiten, und die Gesamt-Erwartungen bei Lieferung.

Es ist ganz wichtig, die Gesamt Erwartungen der Parteien zu verstehen, die die Software verwenden werden. Jeder am Projekt beteiligten sollte ein gemeinsames Verständnis davon hat, was gearbeitet wird - wie das in viele Richtungen geht kommuniziert wird.

Allzu oft in der Softwareentwicklung beteiligten Parteien nicht erkennen, dass die Kommunikation zwischen den Parteien oft ist der kritischste und unterbewerteter Teil des Projektes - und die häufigste Ursache für Projekt Pannen.

Beantwortet am 11/06/2009 um 22:48
quelle vom benutzer

stimmen
16

Nach Erfahrung von vielen unvollendeten Projekte , neige ich dazu , eine vereinfachte Version meiner Geschäftsprozesse in meiner persönlichen Entwicklung Methodik umzusetzen.

Sie folgen im Allgemeinen die folgende Struktur:

  1. Erstellen Sie eine kurze, damit ich ein Ziel vor Augen haben.
  2. Implementieren Sie ein Klassendiagramm , um die Daten zu verstehen ich werde zu tun haben .
  3. Implementieren Sie alle Klassen.
  4. Zeichnen Sie ein up Use-Case - Diagramm auf Tätigkeiten umreißen.
  5. Scaffold die Use-Case disagram (in HTML für Webapps)
  6. Verdrahten das Gerüst, durch die Implementierung von Unit-Tests und Gebäuden, sie zu passieren.
  7. Entscheiden Sie das Produkt für den kommerziellen Erfolg zu lösen, dann vergessen Sie alles über sie.
Beantwortet am 11/06/2009 um 22:58
quelle vom benutzer

stimmen
1

Ich brauen einen Kaffee und ein paar Sandwiches Handwerk.

Wirklich hängt es von dem Projekt. Ich habe an einigen Projekten in der Rüstungsindustrie gearbeitet, die 2 Jahre nahmen die Detailplanung, bevor eine einzige Zeile Code zu schreiben, und ich habe setzte mich und einige kleine Dienstprogramme von nur wenigen Anfragen in einer E-Mail von einem 3D-aufgewühlt oder Künstler Textur in einer einzigen Sitzung mit einer Tüte Brezeln und einer Tasse Joe.

Die Möglichkeit, Flussdiagramme, UML-Diagramme, Use-Case-Wörterbücher und umfangreiche Coding-Standards, bevor die Hand zu entwickeln, ist eine schöne Möglichkeit, Dinge zu halten organisiert, und ist sicherlich lohnt sich auf größere Projekte, größere Teams und unternehmenskritischen Projekten. Aber diese Dinge tun Zeit in Anspruch nehmen, und werden häufig für kleinere Projekte übertrieben.

Das einzige, was Sie wirklich sicherstellen müssen, ist, dass Sie ein angemessenes Verständnis des Problemgebiets haben. Wenn nicht, bis die Zeit verbringen Front es zu erforschen, bis Sie tun, ist immer die Zeit wert.

Beantwortet am 11/06/2009 um 23:11
quelle vom benutzer

stimmen
3

Als ich in den „Wasserfall“ Art und Weise war, Dinge zu tun hätte ich mehrere hundert seitige Dokumente schreiben alle Details zeigt, die während der Untersuchungen aufgedeckt werden konnten. Um zu diesem massiven tome der Dokumentation bekommen würde ich generell

  1. treffen und alle Beteiligten mit dem Projekt begrüßen
  2. reichlich Notizen über die wahrgenommenen Anforderungen nehmen
  3. langen Aufzählungen von High-Level-Anforderungen erstellen
  4. starten, um die hohen Anforderungen in gut definierte Details zu brechen
  5. beginnen Software Requirements Specification Wortvorlage auszufüllen: SRS
  6. erstellen Drahtrahmen in Photoshop, Excel, oder (mein Favorit) Balsamiq
  7. Liste von Daten, die erfaßt werden müssen, und starten Sie ein grobes Schema bauen
  8. auflisten Klassenstrukturen in UML
  9. definieren Projektplan
  10. bla bla bla
  11. Code schreiben
  12. hoffen, dass das, was angefordert wurde, ist das, was noch Code gesucht, wenn Sie fertig ist!

In den letzten paar Jahren mit Agile (SCRUM) im Anschluss an habe ich und haben einen völlig anderen Ansatz.

  1. treffen sich mit Produkt Besitzer über Aufgaben zu hören gebaut werden
  2. zersetzen Geschichte in Aufgaben (Grundplanung)
  3. zuweisen Zeit Aufgaben
  4. tun einige detailliertere Planung
  5. -> Schreibprüfung, Code schreibt Test bestehen, Refactoring -> Check-in Tanz
  6. demonstrieren Arbeits Produkt / Feature
  7. Start Prozess über

Ich muss sagen, dass Agile die Menge Zeit damit verbracht, Schreiben von Dokumenten reduziert, die, sobald die Tinte trocknet zerfallen. Der Product Owner bekommt führt zu einer viel schnelleren Weise zu sehen. Was bedeutet, dass sie das Projekt geht in die richtige Richtung im Laufe der Zeit zu halten bekommen - auch wenn das Richtungsänderungen, wie wir entwickeln.

Beachten Sie, dass es eine Zeit und einen Platz für beide Richtungen zu entwickeln. Ich würde nicht wollen, Jet-Software Agile bauen!

Beantwortet am 11/06/2009 um 23:41
quelle vom benutzer

stimmen
0

Ich bin immer noch an der Uni und ich noch keine Erfahrung habe mit großen Umfang Software-Systeme zu schaffen, aber ...

Das erste, was getan werden muss, ist, herauszufinden, was wollte ist. Bisher für mich, dies ist in der Regel eine Zuordnungsvorschrift, aber in der realen Welt geht es im Gespräch mit dem Kunden. Viel.

Dann arbeite ich heraus, wie zu tun, was erforderlich ist. Für die relativ kleinen Programme, die ich gearbeitet habe, ich bilde normalerweise in meinem Kopf eine grobe Vorstellung von dem, was mein Programm geht aussehen (was die wichtige Teile des Programms sind und wie sie miteinander interagieren). Dies kann Spikes beinhalten, wenn ich keine Ahnung, wie ein Teil des Programms arbeiten. Ich glaube nicht, dieser Ansatz (das tut alles in meinem Kopf) wird sehr gut skaliert, aber die Frage war zu fragen, was wir eigentlich tun ...

Sobald ich mehr oder weniger wissen, was ich versuche zu tun, setze ich mich hin und schreibe den Code. Es ist hier, dass ich Probleme in entdecken, was ich dachte.

Ich glaube nicht , dass ich jeden benutzt habe Pseudo - Code , einen Algorithmus zu entwerfen. Ich denke , Pseudo - Code zu niedrigem Niveau ist , große Teile des Programms zu entwerfen.

Ich habe nur ein Flussdiagramm in einem Fall mit der Gestaltung eines Programms zu helfen - als ich Anordnung wurde das Lernen und war ziemlich neu in die Programmierung (und es war hilfreich). Der Mythos der Mann-Monat sagt die folgenden:. „Das detaillierte Blow-by-Blow - Flussdiagramm, jedoch ist ein veraltetes Ärgernis, geeignet nur für Anfänger in algorithmische Denken Einleitung ... Ich habe noch nie einen erfahrenen Programmierer, der routinemäßig detaillierte gesehen Flussdiagramme vor , Programme zu schreiben beginnen.“

Beantwortet am 12/06/2009 um 03:51
quelle vom benutzer

stimmen
1

IMO 5 Minuten der Planung voraus = 1 Stunde Codierung ....

So viele Male müssen wir gehen zurück und überdenken die ganze Situation, weil wir nichts geplant haben.

Der wichtigste Teil ist das Flussdiagramm sein.

Die anderen Details können manchmal im Fluge betreut werden.

Beantwortet am 12/06/2009 um 04:35
quelle vom benutzer

stimmen
0

Ich zeichne umfangreiche Flussdiagramme und Pseudo - Code für die komplizierteren Funktionen schreiben. Ich fühle mich wie das Flussdiagramm Zeichnung ermöglicht es mir durch Zufall ohne Einführung von Bugs Refactoring. Ein visuelles Diagramm auf dem Papier wie ein Flussdiagramm zu machen hilft mir , auch wenn meine Logik herauszufinden ist eigentlich richtig. Dies funktioniert nur wirklich für kleine - mittlere Projekte , in denen die meisten der Spezifikationen sind bekannt.

Mit mehr Erfahrung, die Notwendigkeit, umfangreiche Flussdiagramme zeichnen und ganze Funktion Pseudo-Code schreiben, wird jedoch mehr überflüssig werden, bevor Sie diesen Punkt erreichen empfehle ich Ihnen sehr, bevor Sie Code planen.

Beantwortet am 06/07/2011 um 20:40
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more