Wie geht ihr an ein neues Projekt ran?

zirag

Erfahrenes Mitglied
Hallo Leute,

Ich wollte mal hören, wie ihr ein Programm anfangt, also die Planung im Vorfeld.
Nehmt ihr ein Schmierblatt und kritzelt da fröhlich drauf los oder fangt ihr einfach an zu programmieren?

Warum frage ich? ...

... weil ich einfach strukturierter arbeiten will. Bei mir sieht das nämlich im Moment immer so aus:
Ich habe eine Idee im Kopf, was ich machen will.
Dann fange ich einfach an, drauf los zu programmieren.
Ich programmiere einen kleinen Teil, meist um erstmal die Funktion zu testen mit einfachen Beispielen und dann bau ich das immer weiter aus. Der Code wächst.
Wird aber mit der Zeit immer unübersichtlicher, weil immer irgendwo was zu geschrieben wird.

Wenn ich mir so Videotuts ansehe, dann fangen die gleich an für alles was gebraucht wird Variablen anzulegen. Ich selber weiss, wenn ich anfange, noch gar nicht was noch alles dazu kommt an Variablen.

Nun kommt ihr ;) Am besten machen wir das ganze mal anhand eines einfachen Beispiels....

hmmm...

sagen wir mal eine Uhr mit 2 Zeigern.

Programmiersprache ist ja egal, es geht ja nur um ein Planungskonzept.

Vielen Dank im Vorraus ;)

mfg
 
Hi, also ich Programmiere Überwiegend PHP (OOP).

ich fange meistens damit an einen kleinen Programm Kern zu schreiben.
In dem führe ich dann alles aus separaten Klassen zusammen.

Die einzellnen Klassen teile ich auf nach ihren Funktionen.
Zb. hab ich immer eine Configurationsklasse das mir die wichtige Daten wie pw von mysql und so speichert und sonstige Laufzeitverhalten halt.
Dann leg ich halt noch Klassen an die mir bestimmt Funktionen für die Datenbankverbindung bereitstellen zb oft verwendetet query Strukturen und sammelt auch optional debuginfos die zum entwickeln wichtig sind.
Dann hab ich meisten noch Klassen für öfts vorkommende HTML Codes, Übersetzungsklassen und alles was man halt so braucht.

Das Projekt selber teil ich auch wieder in einzelne Abschnitte/Seiten auf die dann wiederum durch Klassen erst und unterklassen generiert werden, das macht sich mit der Vererbung und den ganzen Spielereien ganz gut..

Jetzt mal ganz grob erklärt.

Gruß Napofis
 
Hallo!

Hatten wir das Thema nicht schonmal?
Kommt mir jedenfalls irgendwie bekannt vor. ;)

Bei mir sieht das nämlich im Moment immer so aus:
Ich habe eine Idee im Kopf, was ich machen will.
Dann fange ich einfach an, drauf los zu programmieren.
Ich programmiere einen kleinen Teil, meist um erstmal die Funktion zu testen mit einfachen Beispielen und dann bau ich das immer weiter aus. Der Code wächst.
Genau so gehe ich es auch an. ;)
Allerdings muss ich dazu auch sagen dass meine Projekte nur für den persönlichen Gebrauch sind.
Ich brauche also keine Angst zu haben irgendwann mal in zugzwang zu geraten. ;)
Wird aber mit der Zeit immer unübersichtlicher, weil immer irgendwo was zu geschrieben wird.
Würde ich so nicht pauschal sagen.
Kommt halt darauf an wie gross das Projekt wird oder mal werden könnte.
Ich selber weiss, wenn ich anfange, noch gar nicht was noch alles dazu kommt an Variablen.
Kenne ich. ;)
Nun kommt ihr ;) Am besten machen wir das ganze mal anhand eines einfachen Beispiels....
Beispiel?
Darüber ob PHP zum programmieren gehört oder nicht, darüber streiten sich ja die Gelehrten. ;)
Mir ging/geht es z.B. um die Beunutzerverwaltung von MySQL.
Natürlich kann man auch mit z.B. phpMyAdmin neue Benutzer samt neuer Datenbank und der dazugehörigen Rechte anlegen.
Mit phpMyAdmin sind dazu aber mehrere "Stufen" notwendig.
Und genau hier soll mein Projekt ansetzen, ich will quasi eine Art "ein klick" System entwickeln.
Gut möglich dass es sowas schon gibt, aber warum nicht was eigenes machen?! ;)
So ist man sich jedenfalls sicher dass das System zu 100% auf die eigenen Bedürfnisse zugeschnitten ist.
Bei fertigen Lösungen sieht es zudem i.d.R auch noch so aus, dass diese noch andere Funktionen beinhalten die man evtl. garnicht braucht.
Diese fertigen Lösungen sind i.d.R. also unnötig "überladen".

Was mir allerdings evtl. mal zum "Verhängnis" werden könnte ist dass ich das Projekt nicht in modularer Bauweise aufgebaut habe (keine OOP, keine eigenen Funktionen die man mehrfach verwenden könnte).
So wird ein erweitern des Projekts natürlich zunehmend schwerer.
Bei derzeit rund 340 Zeilen Code (die wesentlichen Funktionen sind schon vorhanden) bin ich aber noch recht zuversichtlich. ;)

Gruss Dr Dau
 
Da war wohl jemand noch schneller ... das hier geht an Napofis...

Danke für die Antwort ... aber es geht eher nicht um "wie programmiere ich" sondern eher um die Planung.

Schreibst du dir erstmal alles auf ein Schmierblatt (z.B. welche Funktionen welche Klassen haben sollen usw.) oder schreibst du einfach drauf los....

auf solche Fragen will ich eigentlich hinaus ;)

mfg
 
Zuletzt bearbeitet:
Kommt stark darauf an, ob es beruflich ist oder privat.

Im beruflichen Umfeld muss das volle Programm abgespielt werden. Also Projektplanung, UML etc.pp. Sehr viel theorie bevor der erste Code geschrieben wird.

Privat mache ich mir die Arbeit selten. UML Diagramme mache ich nur, wenn ich glaube diese Klassen mehr als einmal zu brauchen. Ggf. plane ich dann gleich Klassenbibliotheken etc.
 
Hi, ein interessantes Thema, werd ich verfolgen;)

Also. Ich Programmiere meist in CPP. Dafür nutze ich das Visual Studio 2005.
Es ist selten, dass ich mir irgend etwas vorschreibe (auf einem Blatt)
Erst überlege ich natürlich ob GUI oder Konsole.

Ich vesuche mein Programm so übersichtlich zu halten, wie es geht. Alles schön einrücken, alles Schön benennen, und auch kommentieren, das hilft ungemein;)

Also um eine Uhr zu Programmieren, müsste ich natürlich eine GUI nehmen, würd ich zum Beispiel eine MFC benutzen.
Als nächstes erst das Grundgerüct basteln, mich darum kümmern, dass das Ziffernblatt und die Zeiger angezeigt werden. Dan Würd ich Funktionen schreiben, die jeden Zeiger gesondert anspricht und kontroliert, d,h, um einen Bestimmten Winkel gedreht wird. Wenn das steht würde ich mich darüm kümmern, dass sich der Winkel aus der Zeit, z.b. Minuten errechnet.
Wärend des ganzen würde ich dan schauen welche Variablen ich brauche.

Also resultierend nich allzu Strukturiert warsheinlich:)

EDIT: Eigentlich wären Klassendiagramme sinnvoll, doch da ich nicht besonders gut darin bin die zu malen, versuche ich lieber mir vorher zu überlegen wass ich brauche:)
 
Am besten geht es für mich wenn ich ein Design Document verfasse.
Ich überlege mir: Was willst Du erreichen mit der Anwendung und liste erst einmal jede Funktionalität auf. Während ich die Punkte aufschreibe fallen mir schon neue Dinge ein die ich hinzufüge, ändere oder entferne - aber ein Konzept kristallisiert sich dabei langsam heraus.

Das geht natürlich nur bei Projekten mit festem Ziel. Manchmal macht es aber auch Spaß etwas einfach so anzufangen und zu schauen was sich daraus entwickelt. Für größere Projekte ist das aber wie Du schon richtig bemerkt hast recht problematisch, wenn man immer unübersichtlicheren Code hat.
 
Hi,
ich programmiere hauptsächlich in Java.
zirag hat gesagt.:
... weil ich einfach strukturierter arbeiten will. Bei mir sieht das nämlich im Moment immer so aus:
Ich habe eine Idee im Kopf, was ich machen will.
Dann fange ich einfach an, drauf los zu programmieren.
Ich programmiere einen kleinen Teil, meist um erstmal die Funktion zu testen mit einfachen Beispielen und dann bau ich das immer weiter aus. Der Code wächst.
Wird aber mit der Zeit immer unübersichtlicher, weil immer irgendwo was zu geschrieben wird.
Zum letzten Punkt kam es nur in Basic-Zeiten, aber seit dem ich aktiv OOP programmiere nicht mehr.
Ich teste zwar erst mal die Funktionen, meist gegen alle OOP-Konventionen. Doch irgendwann sehe ich eine Verbesserung in meiner OOP-Technik und wende sie sofort an. So wird mein wachsender Code immer mehr verbessert und zur Verwirrung kommt es (fast) nie.
Eine Planung nehme ich nicht vor. Wozu auch? Meine Programme programmiere ich privat, nur ich muss sie warten. Außerdem kommentiere ich mit Javadoc.
Das Konzept, was ich immer anstrebe ist: Möglichst viele kleine, wiederverwehrtbare Klassen und Schnittstellen in aussagekräftige Packages verpackt.

Also würde ich für deine Uhre erst mal ohne Plan die Grafik machen, da ich auf diesem Gebiet am unerfahrensten bin.(Mit Grafik meine ich die Bewegung der Zeiger unabhängig von der tatsächlichen Zeit). Dann erst kommt die Ziffern dran und zum Schluss, wenn die Uhr irgendwie läuft, untersuche ich den Code auf Verbesserungen und programmiere noch AddOns dazu(Einstellungen wie Style, Zeit, Wecker & Co). Mit dem Projekt höre ich erst auf, wenn mir eine Idee für das nächste Programm gekommen ist.

Ciao
DosCoder
 
Zuletzt bearbeitet:
Wenn ich mir so Videotuts ansehe, dann fangen die gleich an für alles was gebraucht wird Variablen anzulegen. Ich selber weiss, wenn ich anfange, noch gar nicht was noch alles dazu kommt an Variablen.
Tutorials sind für so etwas keine guten Beispiele. Die sind nämlich im Voraus oft bis ins Detail geplant. Schließlich möchte der Tutor vorher wissen, wohin die Reise geht und dass sie nicht vorzeitig in einer Sackgasse endet.

Tatsächlich steht dem Programmieren eine Menge Denkarbeit voran – oder zumindest sollte es das. Denn Gedanklich lassen sich viele Fehler im Voraus vermeiden, die, sind sie einmal programmiert, oft schwierig zu beseitigen sind.

Deswegen solltest du dich erst einmal mit einem Zettel und Stift hinsetzen und dir Gedanken über dein Projekt machen. Dabei steht vor allem die Zielfindung im Mittelpunkt, was also am Ende des Projekts dabei herauskommen soll (Funktionalität). Die Frage, wie der Weg dahin aussieht (Implementierung), ist erst einmal zweitrangig.

Bei der Formulierung der Funktionalität stellst du am besten typische Problemszenarien auf. Beispielsweise:
Die Besucher sollen imstande sein, eine Nachricht auf meiner Website zu hinterlassen, die nach einer Freigabe durch mich anschließend für alle Besucher sichtbar ist.​
Hier spielt das Wie erst einmal keine Rolle. Nur das Was ist relevant.

Bei der Formulierung der Implementierung geht es anschließend um die Details. Beispielsweise, welche Daten die Besucher angeben können/müssen, wo die Nachrichten gespeichert werden sollen, wie die Freigabe der Nachrichten abläuft etc.
Hier sollte auch geklärt werden, welche Akteuere und Objekte es gibt und wie sie untereinander in Relation stehen. Beispielsweise:
Besucher und Eigentümer der Website sowie Gästebuch und Nachrichten wobei Besucher Nachrichten verfassen, der Eigentümer der Website Nachrichten freigibt oder löscht und das Gästebuch die freigegebenen Nachrichten anzeigt.​
Hieraus lassen sich dann auch schon ihre Methoden und Attribute ablesen.
 

Neue Beiträge

Zurück