Wie Strukturiere ich mein Projekt?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fledermausland
User
Beiträge: 12
Registriert: Freitag 22. Januar 2010, 15:38

Hallo allerseits,

da ich an einem, für mein Verhältnisse, größeren Projekt sitze (sind im Moment ~600 Zeilen in allen Dateien, die Meisten von euch werden darüber wohl lachen) und mir ständig selbst in die Quere komme, wüsste ich gerne ob ihr Tips zur Organisation/Struktur von Pythonprojekten habt. Mir geht's meistens so, dass ich ab und an z.B. mal eine Routine als Funktion auslagere, aber mir das dann später doch nicht passt und wieder alles ändere, nur um danach festzustellen, dass die Klasse XYZ eigentlich überflüssig ist etc...
Wie schafft ihr es, den Überblick und eine klare Struktur zu behalten? Erweiterbarkeit ist ja auch ein großer Punkt, so dass man später Funktionen hinzufügen kann ohne großartig im alten Code herumzuwurschteln.

Gruß, Marc
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Hi,

das A und O bei größeren Projekten ist, keinesfalls mit dem Code zu beginnen!

Am Anfang sollte immer eine Beschreibung stehen, was Dein Programm leisten können soll. Das ist am Ende dann die Messlatte, ob Du auch alles drin hast.
Davon ausgehend kannst Du dann Deine Programmstruktur entwickeln und entscheiden, wie Du die Aufgaben auf Paket, Module, Klassen und Funktionen aufteilst.

Ich weiß selbst, wie schwer es ist, diszipliniert am Design zu arbeiten. Aber wie Du auch schon bemerkt hast, zahlt es sich bei größeren Projekten früher oder später garantiert aus.

Übrigens bin ich gerade dabei, eine Art Outlining-Tool für die Projektentwicklung zu schreiben. Damit soll die strukturierte Konzeptionierung eines Projekts nach dem Devide&Conquer-Prinzip durch graphische Bedienung gleichzeitig vereinfacht und beschleunigt werden.

Wenn Interesse besteht, kann ich ja übers Wochenende mal versuchen, eine Projektwebseite aufzusetzen.

VG,
Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Benutzeravatar
Käptn Haddock
User
Beiträge: 169
Registriert: Freitag 24. März 2006, 14:27

Michael Schneider hat geschrieben: Wenn Interesse besteht, kann ich ja übers Wochenende mal versuchen, eine Projektwebseite aufzusetzen.

VG,
Michel
Hallo!

Ich hätte da auch Interesse dran... ;)

Vielen Dank und Grüsse

Uwe
---------------------------------
have a lot of fun!
fledermausland
User
Beiträge: 12
Registriert: Freitag 22. Januar 2010, 15:38

Natürlich besteht Interesse :)

Aber du hast mich übberredet: ich werf's übern Haufen und fang nochmal an, sobald ich ein richtiges Konzept habe. Das geht alles in allem wahrscheinlich sogar schneller als noch Ewigkeiten in festgefahrenem Code herumzufrickeln.
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Du brauchst ja nicht alles über den Haufen werfen. Nehm den vorhandenen COde als Prototypen für das Projekt.
lunar

Michael Schneider hat geschrieben:das A und O bei größeren Projekten ist, keinesfalls mit dem Code zu beginnen!
Das ist aber eine sehr absolute Aussage … eine gewisse Planung ist gewiss von Nöten, aber imho ist es immer sinnvoll einen Prototypen zu implementieren, bzw. so früh wie möglich mit der Implementierung zu beginnen. Tatsächliche (und nicht nur mögliche) Schwierigkeiten entdeckt man eher bei der Implementierung als beim Entwurf, insbesondere, wenn es an Erfahrung mangelt. Besser, man entdeckt und bewältigt solche Schwierigkeiten so früh möglich, als nach einer langwierigen Entwurfsphase.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Besser, man entdeckt und bewältigt solche Schwierigkeiten so früh möglich, als nach einer langwierigen Entwurfsphase.
Dem schließe ich mich an. Gerade Software die ewig geplant wird tendiert dazu langsam, träge und übermäßig flexibel zu sein, so dass sie zwar alles kann, aber kaum etwas was für den User benutzbar und/oder brauchbar ist. Ich schreibe einige Teile meiner Software mehrmals und erst irgendwann bin ich mit irgendeiner Fassung halbwegs zufrieden so dass man sie stehen lassen kann.

Natürlich macht ein Gewisses Maß an Planung Sinn, aber so Sachen wie Spezifikationen lesen und optimalerweise auch verstehen usw. sollte man so oder so immer früher tun um abschätzen zu können ob das Projekt überhaupt machbar ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Es handelt sich hier um verschiedene Lösungsansätze. http://de.wikipedia.org/wiki/Wasserfallmodell würde ich auf der einen Seite einordnen, auf der anderen Seite so etwas wie http://de.wikipedia.org/wiki/Scrum (bzw. http://en.wikipedia.org/wiki/Scrum_%28development%29). Python eignet sich auch für die agileren Ansätze, da du weniger Code wegwerfen musst.
Antworten