Hallo.
Ich habe eine Frage zu gründlich und Sauber Programmieren und möchte gerne Mal eure Erfahrung hören wie man selbst in Python gut lesbaren Code produzieren kann Oder gibt es Tutorials dazu ? Und wie man wenn man ein größeres Projekt vor Augen hat, dieses gut durchplant.
Ich habe nämlich gemerkt das wenn ich an größeren Projekten arbeite das man schnell die Übersicht verliert. Oder weil man nicht gut durchplant hat, vieles neu und anders schreiben muss.
Würde mich Mal interessieren wie ihr programmiert, wie ihr anfängt und plant.
Danke im voraus
Gründlich und Sauber Programmieren
Das ist ganz normal, dass man Refactoring betreibt oder manchmal auch alles wegwirft und komplett neu überdenkt. Bei einem Ein-Mann-Projekt kann man alternativ auch einfach drauflos schreiben oder nur eine ganz grobe Planung machen. Wichtig ist halt, das Projekt nicht aufzugeben, nur weil es komplexer wird. Zumindest solange die grundsätzliche Motivation und Zeit dafür vorhanden sind.
Und gerade wenn man sich auf unbekanntem Terrain bewegt, entstehen ja trotzdem verschiedene Ideen, die bei Bedarf in anderer Form wieder aufgenommen werden können. Die schlechten Ideen werden halt weggeworfen, was letztlich aber auch zum Erkenntnisgewinn beiträgt.
Achja, und schlechten Code erkennt man manchmal daran, dass man neue Features um jeden Preis in eine vorhandene Struktur pressen will bzw gepresst hat. Das ist dann der Punkt, an dem man über einen grundsätzlichen Umbau des Codes nachdenken sollte. Dies nimmt sicherlich mehr Zeit in Anspruch, hat aber den großen Vorteil, dass das Projekt lesbar und wartbar bleibt.
Es ist eine Erfahrungssache, und auch keine exakte Wissenschaft: bei der Systemarchitektur gibt es oft genug Situationen, in denen ein Programmierer das so, und eine andere Programmiererin das anders machen wuerde - und keiner hat Recht oder Unrecht. Ein paar Dinge, die man sich als gute Praxis angewoehnen sollte:
- Versionskontrolle benutzen. git ist die populaerste. Mercurial ist auch ok, von SVN und CVS die Finger lassen im 21ten Jahrhundert.
- Tests schreiben, am besten sogar test-getrieben (TDD) entwickeln. Das hilft sowohl den gewaehlten Ansatz mit den APIs die man schafft gleich zu validieren, als auch spaeter bei Refaktorings mehr Sicherheit bei Aenderungen zu haben.
- Modular arbeiten. Es gibt ein paar nette Prinzipien wie "one class, one responsibility" oder auch Dinge wie "demeter's law" die man beachten sollte. Wobei eben fuer all diese Dinge gilt, dass sie kein Selbstzweck sind.
- Versionskontrolle benutzen. git ist die populaerste. Mercurial ist auch ok, von SVN und CVS die Finger lassen im 21ten Jahrhundert.
- Tests schreiben, am besten sogar test-getrieben (TDD) entwickeln. Das hilft sowohl den gewaehlten Ansatz mit den APIs die man schafft gleich zu validieren, als auch spaeter bei Refaktorings mehr Sicherheit bei Aenderungen zu haben.
- Modular arbeiten. Es gibt ein paar nette Prinzipien wie "one class, one responsibility" oder auch Dinge wie "demeter's law" die man beachten sollte. Wobei eben fuer all diese Dinge gilt, dass sie kein Selbstzweck sind.