Projekt vorbereitung

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Projekt vorbereitung

Beitrag von hanibal »

Hi,

Ich würde gerne wissen, welche vorbereitungen ihr auf größere projekte macht.

also z.B. mindaps, usw. Was macht ihr da nomalerweise?
Ich habe nämlich vor ein Aufwendigen Scriptinterpreter mit Grafischer Oberfläche, Tokenizer, Paser und was alles dazugehört zu schreiben, und möchte da sehr gut vorbereitet drauf losgehen, da es sonst nur ein riesiges Code gewusel wird.
Wie kann man sich daruaf am besten vorbereiten?

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Mein Bestes beispiel dürfte meine "2D Engine" sein, auch wenn es noch ein relatives kleines Projekt ist möchte ich erwähnen.
An der Engine bastel ich seit November rum... und es kommen immer neue sachen hinzu. Wie z.b. auch meine GUI die drauf Basiert *freu*.

Ich mache mir nur Gründliche Gedanken darüber und eine art "Testreihe".
Ob die ersten schritte wirklich so klappen wie ich sie mir vorgestellt habe, meistens tuen sie das auch.
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: Projekt vorbereitung

Beitrag von Euklid »

hanibal hat geschrieben:also z.B. mindaps, usw. Was macht ihr da nomalerweise?


Mindmaps, Programmablaufdiagramme, u.s.w. - was man davon braucht, muss jeder für sich selbst entscheiden. Ich weiß nicht, ob es hier wirklich eine universelle Methode gibt.

Ich mache das meist wie folgt:

Ich suche mir eine ruhige Minute, setze mich in dem Sessel in meinem Zimmer und mache mir Gedanken:

1. Zuerst die grobe Struktur;
2. Dann immer feinere Details.

und irgendwann hab ich dann ein fertiges Konzept im Kopf, was ich dann umsetze. Sollte eine größere Zeitspanne zwischen meinen Gedanken und der Umsetzung liegen, verschriftliche ich die Ideen stichpunktartig.

Aber wie gesagt - hier hat wohl jeder seine eigenen Methoden. Bei Parser u.s.w. würde ich dir empfehlen, dir besonders detailierte Gedanken zu machen. Kann ansonsten ärgerlich enden. ;)

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Ich finde MindMaps ziemlich gut und verwende diese auch, um die Gedanken auf Papier zu bringen. Erst eben wirklich mit Stift und Papier, dann mit Freemind.
(http://freemind.sourceforge.net/wiki/in ... /Main_Page)
Bild

Dann mache ich "Ablaufdiagramme", wie man sie zu Zeiten der Prozeduralen Programmierung gemacht hat.
Bild
Ich finde, diese Dinger haben immer noch Gültigkeit. Allerdings hatte ich noch nie so große Projekte, dass ich z.b. auf UML zurückgreifen musste, auch wenn das Konzept gar nicht so blöd ist (wenn es um den Klassenentwurf und die Sendung von Botschaften zwischen den Klassen geht).

Leider habe ich bisher keine Software gefunden, welche das erstellen solcher Diagramme einfach gestaltet. Daher zeichne ich sie mit der Hand, wenn auch nicht so detailiert.
Sieht dann ein wenig wie das hier aus:
Bild

Ich finde schon, das derartige Notizen einem Helfen können. Auch "Pflichtenhefte", wie sie bei Auftragsarbeiten üblich sind, finde ich manchmal ganz gut. Natürlich nicht so detailiert, aber wenn ich mir selber sowas aufzwinge, ist die Wahrscheinlichkeit, an schwierigen oder langweiligen Teilen der Programme zu scheitern oder aufzuhören, geringer (Icons, Dokumentation,...)

Hroudtwolf
Beiträge: 14
Registriert: Sa 26. Jan 2008, 17:36
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Beitrag von Hroudtwolf »

Da bin ich ganz auf der Seite von Bembulak und mache es ganz ähnlich wie er.

Zuerst steht die Idee. Ist ja klar. Darüber brauchen wir nicht reden.
Anschliessend mach ich mir Gedanken was genau das Programm können muss und wie die einzelnen Klassen zusammenarbeiten.
Wobei zunächst ne Mindmap her muss die mir hilft mich an mein Grundkonzept zu halten.
Ein Ablaufdiagram mache ich nicht immer. Da kommts ganz auf den Funktionsumfang an.
Wenn dieser übersichtlich im Mindmap unterzubringen ist, mach ich das dort gleicht.
Die Klassen-/Modul-Verzahnung plane ich per UML.
Sobald das steht, weiss ich was ich brauche und beginne damit mein SVN-Verzeichnis zu vorzusetzen. Ich nutze SVN auch für Alleingänge da ich a) ne Projektverwaltung damit habe und b) automatisch Sicherungskopien besitze.
Steht mein SVN, geh ich an meine Klassen und bastel mir erstmal zu allen Klassen und Modulen Templates (nicht im Cpp Sinne), also leere Hüllen.
Sollte ich externe Resourcen benötigen, wie z.B. Bilder mache ich mir schnell ein paar adäquate Dummies. Denn Programmierung und das Design sind bei mir aus Berufserfahrung 2 verschiedene paar Schuhe und werden strikt getrennt gehalten.

Nochn Tipp:
Ich pflege nach aller Planung gern sowas wie Einkaufszettel.
Dabei notiere ich was ich bereits habe (Libraries, Includes...) und was ich nun noch brauche.
Es ist hilfreich die einzelnen Punkte je nach Erfüllung zu streichen.
Denn das macht das Projekt gleich sexy wenn man sieht wie es langsam immer weniger verlangt und immer mehr wird.

MfG

Wolf

hanibal
Beiträge: 369
Registriert: Sa 3. Mär 2007, 16:03
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Bramsche (Emsland)

Beitrag von hanibal »

das hört sich ja alles sehr interressant an.
ich werde dann mal schauen, was ich dann alles so mache, ich habe aber auf jeden fall vor, sehr genau zu planen, da ich bereitz gemerkt ahbe, das man beim interpreter screiben sehr schnell wichtige dinge vergistt, und darunter dann am schluss die geschwindigkeit leidet, weil nicht alles perfekt inneinander greift.

Antworten