Der Begriff, den Sie suchen, ist eine Plattform, die
Plugin -Architekturen unterstützt oder
Modulsysteme . Viele verschiedene Arten von Software können in dieser Kategorie in diese Kategorie fallen, abhängig von den spezifischen Funktionen, die sie ausführen. Hier sind einige Beispiele:
Betriebssysteme:
* Linux: Verwendet ausgiebig ladbare Kernel-Module (LKMs), um Geräte-Treiber, Dateisysteme und andere Funktionen auf Systemebene hinzuzufügen.
Webbrowser:
* Firefox: Historisch gesehen war Firefox für seine Erweiterungen sehr beliebt (obwohl sich das Erweiterungssystem im Laufe der Zeit verändert hat).
* Chrom: Verwendet Erweiterungen, allerdings mit strengeren Sicherheits- und API -Richtlinien als ältere Firefox.
Webserver:
* Apache: Verwendet Module, um Funktionen wie PHP -Unterstützung, URL -Umschreiben, Sicherheitsfunktionen usw. hinzuzufügen.
Content Management Systems (CMS):
* WordPress: Verwendet Plugins ausgiebig. WordPress basiert vollständig Plugin.
* Drupal: Verwendet Module.
* joomla!: Verwendet Erweiterungen.
Integrierte Entwicklungsumgebungen (IDEs):
* Visual Studio Code: Stark auf Erweiterungen basiert. Fast alle Funktionen von VS -Code werden als Erweiterungen implementiert.
* Eclipse: Verwendet Plugins.
* Intellij Idee (und andere Jetbrains -IDes): Verwendet Plugins.
Audio-/Videobearbeitungssoftware:
* Adobe Photoshop: Verwendet Plugins für Filter, Dateiformate und andere Funktionen.
* Adobe Premiere Pro: Verwendet Plugins für Effekte, Übergänge und Codec -Unterstützung.
* Audacity: Verwendet Plugins (Effekte, Audioanalyse usw.).
3D -Modellierungssoftware:
* Mixer: Verwendet Python-Skripte und Add-Ons für eine Vielzahl von Funktionen.
* Autodesk Maya: Verwendet Mel (Maya Embedded Language) Skripte und Plugins.
Game Engines:
* Einheit: Verwendet "Vermögenswerte" (die Code, Modelle, Texturen usw. umfassen können), die Projekten hinzugefügt werden können.
* unwirklicher Motor: Verwendet Plugins.
Andere Beispiele:
* Mediaplayer (z. B. VLC): Verwenden Sie Plugins für Codec -Unterstützung und andere Funktionen.
* Textredakteure (z. B. Sublime Text): Verwenden Sie Plugins für den Sprachunterstützung, den Abschluss von Code usw.
* Datenbanksysteme (z. B. PostgreSQL): Ermöglichen Sie Erweiterungen, neue Datentypen, Funktionen und andere Funktionen hinzuzufügen.
Schlüsselfunktionen von Software unterstützen Module/Plugins:
* genau definierte API (Anwendungsprogrammierschnittstelle): Das ist entscheidend. Die Software bietet einen definierten Satz von Funktionen, Klassen und Datenstrukturen, mit denen Plugins mit dem Kernsystem interagieren können. Eine stabile API ist von entscheidender Bedeutung, damit Plugins nicht mit jedem Software -Update brechen.
* Plugin/Modul -Lademechanismus: Die Software benötigt eine Möglichkeit, Plugins zu entdecken, zu laden und zu initialisieren. Dies kann das Scannen von Verzeichnissen, die Verwendung von Konfigurationsdateien oder die Bereitstellung einer Plugin -Verwaltungsschnittstelle umfassen.
* Sicherheitsüberlegungen: Wichtig. Die Software muss Plugins in gewissem Maße isolieren, um zu verhindern, dass bösartige oder schlecht geschriebene Plugins das gesamte System abstürzen oder die Sicherheit beeinträchtigen. Dies beinhaltet häufig Sandboxen oder Begrenzung der Berechtigungen, die Plugins haben.
* Abhängigkeitsmanagement: Ein System zum Verwalten von Abhängigkeiten (andere Plugins, Bibliotheken oder Ressourcen), die Plugins benötigen.
* Plugin -Metadaten: Informationen zu einem Plugin (Name, Version, Autor, Beschreibung, Abhängigkeiten), mit denen die Software Plugins verwalten kann.
Wichtige Überlegungen bei der Auswahl einer Plattform mit einer Plugin -Architektur:
* Die Qualität der API: Ist es gut dokumentiert, stabil und umfassend?
* Die Größe des Plugin -Ökosystems: Gibt es bereits viele Plugins für die Aufgaben, die Sie ausführen müssen?
* Das Sicherheitsmodell: Wie gut schützt sich die Plattform vor böswilligen Plugins?
* Der Plugin -Entwicklungsprozess: Ist es einfach, Plugins für die Plattform zu erstellen und zu verteilen?
* Leistung: Wie viel wirken sich Plugins auf die Gesamtleistung der Software aus?
Zusammenfassend gibt es * viele * Softwareprogramme, mit denen Benutzer und Entwickler ihre Funktionen durch Module oder Plugins erweitern können. Das spezifische Programm, das Sie benötigen, hängt ausschließlich von der Art der Funktionalität ab, die Sie erweitern möchten.