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
Wie Strukturiere ich mein Projekt?
- 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
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 ...
- Käptn Haddock
- User
- Beiträge: 169
- Registriert: Freitag 24. März 2006, 14:27
Hallo!Michael Schneider hat geschrieben: Wenn Interesse besteht, kann ich ja übers Wochenende mal versuchen, eine Projektwebseite aufzusetzen.
VG,
Michel
Ich hätte da auch Interesse dran...
Vielen Dank und Grüsse
Uwe
---------------------------------
have a lot of fun!
have a lot of fun!
-
- 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.
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.
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.Michael Schneider hat geschrieben:das A und O bei größeren Projekten ist, keinesfalls mit dem Code zu beginnen!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.lunar hat geschrieben:Besser, man entdeckt und bewältigt solche Schwierigkeiten so früh möglich, als nach einer langwierigen Entwurfsphase.
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
- 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.