Hi, ich komme mal wieder mit dem Thema Plugins. Hintergrund ist folgender: Ich möchte ein leeres Fenster, lediglich mit einem Plugin Manager im Menu. Die gesamte weitere Funktionalität kommt von den Plugins.
Das heißt, die Plugins müssen Zugriff auf alle Ui Funktionen wie Menu, Toolbar usw haben und müssen untereinander kommunizieren können.
Meine erste Frage ist jetzt: braucht man dafür überhaupt ein Plugin System oder reicht es aus, richtig modular zu programmieren? Wenn ich mir das so durch den Kopf gehen lasse ist es schwierig, eine klare Grenze zwischen modularer Programmierung und einem Plugin System zu ziehen. Der Übergang ist relativ fließen.
Wie könnte man das Projekt sinnvoll angehen?
Plugin System für PyQt Anwendung
@burli: Glaubst Du wirklich, dass Du bei einer so pauschalen und allgemeinen Fragestellung sinnvolle und zielführende Antworten erhältst, Du über allgemein bekannte Richtlinien ala "definiere eine klare Plugin-Schnittstelle" hinaus gehen?
Insofern ist der beste Rat noch, ein existierendes Rahmenwerk zu suchen (e.g. dip).
Insofern ist der beste Rat noch, ein existierendes Rahmenwerk zu suchen (e.g. dip).
Viel klarer kann ich es nicht beschreiben, weil das System so allgemein wie möglich sein solltelunar hat geschrieben:@burli: Glaubst Du wirklich, dass Du bei einer so pauschalen und allgemeinen Fragestellung sinnvolle und zielführende Antworten erhältst, Du über allgemein bekannte Richtlinien ala "definiere eine klare Plugin-Schnittstelle" hinaus gehen?
Kannte ich noch nicht. Vielleicht hat sich damit das Thema schon erledigtlunar hat geschrieben: Insofern ist der beste Rat noch, ein existierendes Rahmenwerk zu suchen (e.g. dip).
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
@burli: Der Entwurf eines Systems, welches „so allgemein wie möglich“ ist, geht fast immer schief, verlangt ansonsten viel Erfahrung und dauert sehr lange. Wenn Du fragen musst, wie Du ein solches System am Klügsten entwickelst, dann sehe ich darin bei allem Respekt schon den ersten Schritt zum Scheitern.
Entwickele Deine Anwendung lieber nach den tatsächlichen Notwendigkeiten, und baue sie dann falls nötig schrittweise um, um einzelne Teile zu extrahieren und/oder in Plugins auszulagern, entwirf Dein System also im Allgemeinen lieber evolutionär statt revolutionär.
Entwickele Deine Anwendung lieber nach den tatsächlichen Notwendigkeiten, und baue sie dann falls nötig schrittweise um, um einzelne Teile zu extrahieren und/oder in Plugins auszulagern, entwirf Dein System also im Allgemeinen lieber evolutionär statt revolutionär.
Das sowas nicht einfach ist ist mir schon klar. Ich will einfach nur möglichst wiederverwendbaren Code schreiben. Ich wollte eigentlich Eric etwas abspecken um ihn für eigene Zwecke verwenden, aber die Module sind derart verflochten, dass ich allein Wochen damit beschäftigt wäre, alles auseinander zu nehmen, wenn das überhaupt möglich ist.
Genau das will ich aber vermeiden. Ich möchte z.B. einen Filesystem Browser nur einmal programmieren müssen und den anschließend immer wieder verwenden können usw.
Aber vielleicht ist dip ja schon die Antwort. Scheint aber noch nicht allzu alt zu sein. Bei meinem letzten Besuch auf der Webseite gabs das noch nicht. Hat schonmal jemand was damit gemacht?
Genau das will ich aber vermeiden. Ich möchte z.B. einen Filesystem Browser nur einmal programmieren müssen und den anschließend immer wieder verwenden können usw.
Aber vielleicht ist dip ja schon die Antwort. Scheint aber noch nicht allzu alt zu sein. Bei meinem letzten Besuch auf der Webseite gabs das noch nicht. Hat schonmal jemand was damit gemacht?
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol: