Wie soll ich am besten ein neues Programmprojekt beginnen?

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.
efrerich
User
Beiträge: 1
Registriert: Samstag 29. August 2009, 10:04

Zu überlegen ist auch, welche Werkzeuge (Programmierumgebung, Versionskontrolle, u.a.) eingesetzt werden sollen. Z.B. GUI gestalten mit XRCed,. Hinweisen möchte ich auf meinen Text "Einführung in die Entwicklung von Anwendungen mit Python"

http://frerich.eu/Python/AE/index.html

XRCed hat zwar inzwischen ein anderes Aussehen, doch ist es grundsätzlich igenau wie beschrieben anzuwenden.

efrerich
BlackJack

@efrerich: Ich habs mal angelesen und ein wenig Kritik am Quelltext von `lesenAbgleichDatei(). Das fängt, wie üblich, mit der Namensgebung an. Klar ist PEP8 nicht Pflicht, aber Du hast ja *noch* eine unüblichere Variante gewählt, die wenn ich das richtig sehe korrekte deutsche Rechtschreibung ist. Also `Mitglieder` statt `mitglieder` weil man das Wort im deutschen halt gross schreibt. Da bleibt die Unterscheidung Klassen vs. andere Namen komplett auf der Strecke. Andererseits fragt man sich dann natürlich was in `lesenAbgleichDatei()` das `f` bedeuten soll. Korrekt auf Deutsch und mit einem Buchstaben abgekürzt müsste es wohl eher `D` heissen. ;-)

`readlines()` ist in 99% der Fälle überflüssig. Hier auch.

`ersteZeileBearbeitet` ist überflüssig, wenn man einfach die erste Zeile extra behandelt und nicht in allen Folgezeilen an diesem Flag prüft, ob es denn die erste Zeile ist. Ein Name weniger und konzeptionell einfacherer Quelltext. Dann kann man zum Beispiel auch eine "list comprehension" einsetzen (ungetestet):

Code: Alles auswählen

def read(filename, delimiter=';'):
    with open(filename) as lines:
        description = lines.next().split(delimiter)
        if description != EXPECTED_DESCRIPTION:
            log.critical('Falsche Datei')
            raise WrongFile()
        data = [s.split(delimiter) for s in lines]
    return (description, data)
Den Funktionsnamen habe ich auf `read()` verkürzt, weil die Information, das es sich um die Abgleichdatei handelt, schon im Modulnamen steckt. `abgleichdatei.lesenAbgleichDatei()` ist bloss länger als `abgleichdatei.lesen()` ohne zusätzliche Informationen zu liefern.

Grundsätzlich stellt sich hier natürlich die Frage, warum nicht das `csv`-Modul aus der Standardbibliothek zur Anwendung kommt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Weiterhin ist die Empfehlung zu SVN nicht so wahrlich auf der höhe, das gleiche Setup mit Mercurial wäre ein gutes Stück einfacher und auch universeller.

Ich finde es natürlich schön dass du Sphinx benutzt hast, aber die Abgerundeten Ränder sehen bei mir etwas kaputt aus und die rote und blaue Schrift tut den Augen schon etwas weh.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Francesco hat geschrieben:> ... auf wxpyhton in action "angewiesen" ...

das sehe ich ganz und gar nicht ganz so :)
Das Buch ist eine kompatke Form, ja; ich habe es selbst auch damals gleich bestellt

Aber:
a) es steht sicher nicht alles drinnen
b) ist es aus dem Jahr 2006 IIRC, und somit sicher nicht mehr ganz aktuell
Ich fand "wxPython in Action" gar nicht mal so schlecht..., und wie haeufig sollte es denn aktualisiert werden? Sowas ist tierisch zeitaufwendig, und die wxPython API ist relativ stabil, so dass es sich fuer den Autor wohl kaum lohnen wird. ;)

Aber zum Thema: egal ob PyQt (+ designer) oder wxPython (+ wxGlade), man wird erst dann zum guten GUI-Entwickler, wenn man die Prinzipien event-gesteuerter Programmierung auch wirklich verstanden hat. Und wer es verstanden hat, der kann im Grunde vom einem GUI-Toolkit zum naechsten ohne groessere Schwierigkeiten wechseln. Nur die API ist anders, aber dafuer gibt es zum Trost bei beiden Toolkits eine Menge Beispiele, an denen man schnell erkennen kann, was zu tun ist.

Aber, wie gesagt, wxPython vs. PyQt ist eine bikeshed Diskussion: solange man nicht ein paar grundlegende Dinge gelernt hat, z.B. wie man langlaufende Operationen asynchron anstoesst, ohne das GUI einzufrieren, wie man Timer einsetzt etc..., wird ein GUI-Programm so oder so nicht optimal laufen. Da spielt das jeweilige Toolkit dann nur eine untergeordnete Rolle.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Über welchen Quellcode redet ihr? oO
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

audax hat geschrieben:Über welchen Quellcode redet ihr? oO
Den bei http://frerich.eu/Python/AE/index.html
Antworten