Strukturierung größerer Projekte

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
FrankW
User
Beiträge: 4
Registriert: Donnerstag 6. September 2007, 07:45
Wohnort: Cottbus
Kontaktdaten:

Hallo,

ich beschäftige mich seit einiger Zeit mit Python und pyGtk. Die ganzen Tutorials habe ich schon durchgeackert und erste kleinere Projekte realisiert. Nun plane ich gerade ein erstes größeres Projekt (Mehrere Fenster, Eingabemasken mit Datenbankanbindung etc.). Was mir fehlt, ist ein "best practice"-Ansatz für die Strukturierung des Anwendungscodes. Hierzu meine Fragen an diejenigen, die auch schon größeres programmiert haben:

(ich nutze Glade)

- nach welchem Schema benennt Ihr Eure Widgets? Nur wie vorgegeben oder ggf. auch strukturiert (so a la "MaskePerson_entry_name")

- Verteilt Ihr den Code auf mehrere Module, um die ganzen Klassen und Signalhandler nicht alle in einer Datei zu halten?

- Gibt es irgendwie eine besonders gute Lösung, Fenster, Widgets, Signalhandler im Programmcode zu strukturieren?

- Gibt es ein Tutorial oder Buch, deren Erläuterungen über reine Widget-Steuerung hinausgehen, sprich die o.g. Themen zur Projektstruktur behandeln?

Schöne Grüße
Frank
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Also, wie bei fast allem, ein "das beste" gibts hier auch nicht.

Es variiert auch stark von dem Projekt/Ziel, der Arbeit.


Grundsätzlich halte ich es so, das die "erste Ebene" übersichtlich bleibt. Darunter werden weitere Module für User Interface und Logik meißt stark getrennt. Das ist notwendig, wenn andere an deiner GUI etwas verbessern wollen (oder umgekehrt) und sich nicht erst durch sämtlichen Code durcharbeiten wollen.

Da ist Glade eine große Hilfe. Doch auch mit einer solchen gezwungenen Trennung kann man noch viel vermischen, wenn man nicht aufpasst.

Eine Ordnerstruktur sieht bei mir ungefair so aus:


(erste ebene)

Code: Alles auswählen

my_application.py
    | - gui
    | - cli
    | - util
`my_application.py` bildet die Startdatei und importiert die notwendigen Bibliothekten aus den unteren Modulordnern. In `gui` sind meine Widgets (bei Glade in der `my_app.glade`, sonst in einem unterordner `widgets`) abgelegt und verschiedene Utilities, die für die GUI erstellung notwendig sind.
Unter `cli` packe ich notwendiges für das "Command Line Interface". Denn ich habe es gern, wenn man meine Programme gut via Kommandozeile steuern kann.

Im Ordner `util` steckt meine Logik und andere notwendige Bibliotheken.


Das ist so mein Grundaufbau, der von Projekt zu Projekt allerdings variiert, da man meißt mehrere Unterordner etc. hat.
Direkt zum Organisieren des Codes kann ich nicht allzuviel sagen, da ich nur etwas größere Sachen aber nichts "sehr" großes geschrieben habe.

Grundsätzlich versuche ich alle Widgets so eigenständig wie möglich zu programmieren, sodass sie sich auch einzeln sehr gut testen können.


MfG EnTeQuAk
Antworten