Ich arbeite derzeit an einem C++ Produkt. Es wurde entworfen, um eine gewisse Flexibilität zu haben und wurde größer und größer. Jetzt planen wir, in einem Projekt zusammenzuarbeiten, in dem wir Teile des Produkts beitragen möchten: einige Teile als Quellcode, manche Teile als statische Link-Bibliotheken, manche Teile gar nicht."Statisches Plugin" -System (über Build-System) in C++
Ich möchte eine Version jeder Quelldatei behalten, die in beiden Projekten verwendet wird und vermeidet Verzweigung des Ganzen usw. Ich habe mich also gefragt, was ich brauche, um das "vollständige Produkt" intern mit allen Dateien zu haben und auch in der Lage sein, einen Teil dieser Dateien (hin und wieder) zu extrahieren und diese Teilmenge als Arbeitseinheit an andere weiterzugeben. (Ich gehe davon aus können wir sicherstellen, dass diese Dateien nicht in das Kooperationsprojekt verändert, werden wir nur Sachen dort hinzufügen.)
Ich denke, ich brauche
- eine Software-Architektur, die lose so gekoppelt ist, dass Teile können entfernt werden, ohne das System zu zerstören. Ich denke, der Begriff "statisches" Plugin ist hier angebracht, weil ich denke, dass ich von Plugin-Systemen lernen kann, aber ich muss nicht die Fähigkeit haben, sie dynamisch zu laden, sie können auf statische Art und Weise verknüpft werden. Ich hoffe, dass dies mich und meine Mitarbeiter dazu zwingen könnte, das System zu erweitern, indem man eine Art Plugin hinzufügte, anstatt hier und da Klassen einzufügen und so die Kopplung zwischen den Dingen einzuführen.
- ein Build-System, das mich bei der Auswahl der Plugins unterstützt, um neue Subsets zu erstellen und "freizugeben", indem nur das extrahiert wird, was ich brauche.
Gibt es Internetquellen, die helfen könnten? Nach welchen Keywords soll gesucht werden?
Haben Sie Vorschläge, wie Sie damit umgehen sollen?