De term die u zoekt is een platform dat plugin-architecturen ondersteunt of modulesystemen . Veel verschillende soorten software kunnen in deze categorie vallen, afhankelijk van de specifieke functies die ze uitvoeren. Hier zijn enkele voorbeelden:
Besturingssystemen:
* Linux: Maakt uitgebreid gebruik van laadbare kernelmodules (LKM's) om apparaatstuurprogramma's, bestandssystemen en andere functionaliteit op systeemniveau toe te voegen.
Webbrowsers:
* Firefox: Historisch gezien was Firefox erg populair vanwege zijn extensies (hoewel het extensiesysteem in de loop van de tijd is veranderd).
* Chrome: Maakt gebruik van extensies, maar met strengere beveiligings- en API-richtlijnen dan oudere Firefox.
Webservers:
* Apache: Gebruikt modules om functionaliteit toe te voegen, zoals PHP-ondersteuning, URL-herschrijving, beveiligingsfuncties, enz.
Contentmanagementsystemen (CMS):
* WordPress: Maakt veelvuldig gebruik van plug-ins. WordPress is volledig gebaseerd op plug-ins.
* Drupal: Maakt gebruik van modules.
* Joomla!: Maakt gebruik van extensies.
Geïntegreerde ontwikkelomgevingen (IDE's):
* Visuele studiocode: Zwaar gebaseerd op extensies. Bijna alle functies van VS Code zijn geïmplementeerd als extensies.
* Eclips: Maakt gebruik van plug-ins.
* IntelliJ IDEA (en andere JetBrains IDE's): Maakt gebruik van plug-ins.
Audio-/videobewerkingssoftware:
* Adobe Photoshop: Gebruikt plug-ins voor filters, bestandsformaten en andere functies.
* Adobe Premiere Pro: Gebruikt plug-ins voor effecten, overgangen en codec-ondersteuning.
* Durf: Maakt gebruik van plug-ins (effecten, audioanalyse, etc.).
3D-modelleringssoftware:
* Blender: Maakt gebruik van Python-scripts en add-ons voor een breed scala aan functionaliteit.
* Autodesk Maya: Maakt gebruik van MEL-scripts (Maya Embedded Language) en plug-ins.
Game-engines:
* Eenheid: Maakt gebruik van "middelen" (waaronder code, modellen, texturen, enz.) die aan projecten kunnen worden toegevoegd.
* Onwerkelijke motor: Maakt gebruik van plug-ins.
Andere voorbeelden:
* Mediaspelers (bijvoorbeeld VLC): Gebruik plug-ins voor codec-ondersteuning en andere functies.
* Teksteditors (bijvoorbeeld sublieme tekst): Gebruik plug-ins voor taalondersteuning, codeaanvulling, enz.
* Databasesystemen (bijvoorbeeld PostgreSQL): Toestaan dat extensies nieuwe gegevenstypen, functies en andere functies toevoegen.
Belangrijkste kenmerken van software-ondersteunende modules/plug-ins:
* Goed gedefinieerde API (Application Programming Interface): Dit is cruciaal. De software biedt een gedefinieerde reeks functies, klassen en datastructuren die plug-ins kunnen gebruiken om met het kernsysteem te communiceren. Een stabiele API is van cruciaal belang, zodat plug-ins niet bij elke software-update kapot gaan.
* Plugin/module laadmechanisme: De software heeft een manier nodig om plug-ins te ontdekken, laden en initialiseren. Dit kan het scannen van mappen inhouden, het gebruik van configuratiebestanden of het aanbieden van een interface voor het beheren van plug-ins.
* Beveiligingsoverwegingen: Belangrijk. De software moet plug-ins tot op zekere hoogte isoleren om te voorkomen dat kwaadaardige of slecht geschreven plug-ins het hele systeem laten crashen of de beveiliging in gevaar brengen. Vaak gaat het hierbij om sandboxing of het beperken van de rechten die plug-ins hebben.
* Afhankelijkheidsbeheer: Een systeem voor het beheren van de afhankelijkheden (andere plug-ins, bibliotheken of bronnen) die plug-ins nodig hebben.
* Metagegevens van plug-in: Informatie over een plug-in (naam, versie, auteur, beschrijving, afhankelijkheden) die de software kan gebruiken om plug-ins te beheren.
Belangrijke overwegingen bij het kiezen van een platform met een plug-inarchitectuur:
* De kwaliteit van de API: Is het goed gedocumenteerd, stabiel en uitgebreid?
* De grootte van het plug-in-ecosysteem: Zijn er al veel plug-ins beschikbaar voor de taken die u moet uitvoeren?
* Het beveiligingsmodel: Hoe goed beschermt het platform zichzelf tegen kwaadaardige plug-ins?
* Het ontwikkelingsproces van de plug-in: Is het eenvoudig om plug-ins voor het platform te maken en te distribueren?
* Prestaties: Hoeveel invloed hebben plug-ins op de algehele prestaties van de software?
Samenvattend zijn er *veel* softwareprogramma's waarmee gebruikers en ontwikkelaars hun functionaliteit kunnen uitbreiden via modules of plug-ins. Welk specifiek programma je nodig hebt, hangt volledig af van het type functionaliteit dat je probeert uit te breiden. |