Termen du letar efter är en plattform som stöder
plugin -arkitekturer eller
modulsystem . Många olika typer av programvara kan falla i denna kategori, beroende på de specifika funktioner de utför. Här är några exempel:
Operativsystem:
* Linux: Använder mycket lastbara kärnmoduler (LKMS) för att lägga till enhetsdrivare, filsystem och annan systemnivåfunktionalitet.
webbläsare:
* Firefox: Historiskt sett var Firefox mycket populärt för sina tillägg (även om förlängningssystemet har förändrats över tid).
* krom: Använder tillägg, men med strängare säkerhets- och API -riktlinjer än äldre Firefox.
webbservrar:
* apache: Använder moduler för att lägga till funktionalitet som PHP -stöd, URL -omskrivning, säkerhetsfunktioner etc.
Content Management Systems (CMS):
* WordPress: Använder plugins i stor utsträckning. WordPress är helt pluginbaserad.
* drupal: Använder moduler.
* joomla !: Använder tillägg.
Integrerade utvecklingsmiljöer (IDE):
* Visual Studio Code: Starkt baserat på tillägg. Nästan alla VS -kodfunktioner implementeras som tillägg.
* eclipse: Använder plugins.
* Intellij Idea (och andra jetbrains -ides): Använder plugins.
Audio/videoredigeringsprogramvara:
* Adobe Photoshop: Använder plugins för filter, filformat och andra funktioner.
* Adobe Premiere Pro: Använder plugins för effekter, övergångar och codec -stöd.
* Audacity: Använder plugins (effekter, ljudanalys etc.).
3D -modelleringsprogramvara:
* mixer: Använder Python-skript och tillägg för ett brett spektrum av funktionalitet.
* Autodesk Maya: Använder Mel (Maya Embedded Language) skript och plugins.
Spelmotorer:
* enhet: Använder "tillgångar" (som kan inkludera kod, modeller, strukturer etc.) som kan läggas till i projekt.
* Unreal Engine: Använder plugins.
Andra exempel:
* mediaspelare (t.ex. VLC): Använd plugins för codec -support och andra funktioner.
* textredaktörer (t.ex. sublim text): Använd plugins för språkstöd, kodens slutförande, etc.
* databassystem (t.ex. PostgreSQL): Tillåt tillägg för att lägga till nya datatyper, funktioner och andra funktioner.
Nyckelfunktioner hos mjukvaru som stöder moduler/plugins:
* Väl definierat API (Application Programmering Interface): Detta är avgörande. Programvaran tillhandahåller en definierad uppsättning funktioner, klasser och datastrukturer som plugins kan använda för att interagera med kärnsystemet. Ett stabilt API är viktigt så att plugins inte bryter med varje programuppdatering.
* plugin/modulbelastningsmekanism: Programvaran behöver ett sätt att upptäcka, ladda och initiera plugins. Detta kan involvera skanningskataloger, använda konfigurationsfiler eller tillhandahålla ett pluginhanteringsgränssnitt.
* Säkerhetsöverväganden: Viktig. Programvaran måste i viss utsträckning isolera plugins för att förhindra skadliga eller dåligt skrivna plugins från att krascha hela systemet eller kompromissa med säkerheten. Detta innebär ofta sandlådan eller begränsning av de behörigheter som plugins har.
* Beroendehantering: Ett system för att hantera beroenden (andra plugins, bibliotek eller resurser) som plugins kräver.
* plugin metadata: Information om ett plugin (namn, version, författare, beskrivning, beroenden) som programvaran kan använda för att hantera plugins.
Viktiga överväganden när du väljer en plattform med en plugin -arkitektur:
* API:s kvalitet: Är det väl dokumenterat, stabilt och omfattande?
* Storleken på plugin -ekosystemet: Finns det redan många plugins tillgängliga för de uppgifter du behöver utföra?
* Säkerhetsmodellen: Hur bra skyddar plattformen sig från skadliga plugins?
* Pluginutvecklingsprocessen: Är det lätt att skapa och distribuera plugins för plattformen?
* Prestanda: Hur mycket påverkar plugins programvarans övergripande prestanda?
Sammanfattningsvis finns det * många * program som gör det möjligt för användare och utvecklare att utöka sin funktionalitet genom moduler eller plugins. Det specifika programmet du behöver beror helt på vilken typ av funktionalitet du försöker förlänga.