|  
    
Le terme que vous recherchez est une plate-forme qui prend en charge les architectures de plugins. ou systèmes de modules . De nombreux types de logiciels différents peuvent entrer dans cette catégorie, en fonction des fonctions spécifiques qu'ils remplissent. Voici quelques exemples :
  
 Systèmes d'exploitation :  
  
 * Linux : Utilise largement des modules de noyau chargeables (LKM) pour ajouter des pilotes de périphérique, des systèmes de fichiers et d'autres fonctionnalités au niveau du système.  
  
 Navigateurs Web :  
  
 * Firefox : Historiquement, Firefox était très populaire pour ses extensions (même si le système d’extension a évolué au fil du temps).  
 * Chrome : Utilise des extensions, mais avec des directives de sécurité et d'API plus strictes que l'ancien Firefox.  
  
 Serveurs Web :  
  
 * Apache : Utilise des modules pour ajouter des fonctionnalités telles que la prise en charge de PHP, la réécriture d'URL, les fonctionnalités de sécurité, etc.  
  
 Systèmes de gestion de contenu (CMS) :  
  
 * WordPress : Utilise largement les plugins. WordPress est entièrement basé sur des plugins.  
 * Drupal : Utilise des modules.  
 * Joomla ! : Utilise des extensions.  
  
 Environnements de développement intégrés (IDE) :  
  
 * Code Visual Studio : Fortement basé sur des extensions. Presque toutes les fonctionnalités de VS Code sont implémentées sous forme d'extensions.  
 * Éclipse : Utilise des plugins.  
 * IntelliJ IDEA (et autres IDE JetBrains) : Utilise des plugins.  
  
 Logiciel de montage audio/vidéo :  
  
 * Adobe Photoshop : Utilise des plugins pour les filtres, les formats de fichiers et d'autres fonctionnalités.  
 * Adobe Premiere Pro : Utilise des plugins pour les effets, les transitions et la prise en charge des codecs.  
 * Audace : Utilise des plugins (effets, analyse audio, etc.).  
  
 Logiciel de modélisation 3D :  
  
 * Mélangeur : Utilise des scripts et des modules complémentaires Python pour un large éventail de fonctionnalités.  
 * Autodesk Maya : Utilise des scripts et des plugins MEL (Maya Embedded Language).  
  
 Moteurs de jeu :  
  
 * Unité : Utilise des « actifs » (qui peuvent inclure du code, des modèles, des textures, etc.) qui peuvent être ajoutés aux projets.  
 * Unreal Engine : Utilise des plugins.  
  
 Autres exemples :  
  
 * Lecteurs multimédias (par exemple, VLC) : Utilisez des plugins pour la prise en charge des codecs et d'autres fonctionnalités.  
 * Éditeurs de texte (par exemple, Sublime Text) : Utilisez des plugins pour la prise en charge des langues, la complétion du code, etc.  
 * Systèmes de base de données (par exemple, PostgreSQL) : Autorisez les extensions à ajouter de nouveaux types de données, fonctions et autres fonctionnalités.  
  
 Principales fonctionnalités des modules/plugins de support logiciel :  
  
 * API bien définie (interface de programmation d'application) : C’est crucial. Le logiciel fournit un ensemble défini de fonctions, de classes et de structures de données que les plugins peuvent utiliser pour interagir avec le système principal. Une API stable est essentielle pour que les plugins ne soient pas interrompus à chaque mise à jour logicielle.  
 * Mécanisme de chargement des plugins/modules : Le logiciel a besoin d'un moyen de découvrir, charger et initialiser les plugins. Cela peut impliquer d'analyser des répertoires, d'utiliser des fichiers de configuration ou de fournir une interface de gestion de plugins.  
 * Considérations de sécurité : Important. Le logiciel doit isoler les plugins dans une certaine mesure pour empêcher les plugins malveillants ou mal écrits de faire planter l'ensemble du système ou de compromettre la sécurité. Cela implique souvent un sandboxing ou une limitation des autorisations dont disposent les plugins.  
 * Gestion des dépendances : Un système de gestion des dépendances (autres plugins, bibliothèques ou ressources) dont les plugins ont besoin.  
 * Métadonnées du plugin : Informations sur un plugin (nom, version, auteur, description, dépendances) que le logiciel peut utiliser pour gérer les plugins.  
  
 Considérations importantes lors du choix d'une plate-forme avec une architecture de plugin :  
  
 * La qualité de l'API : Est-il bien documenté, stable et complet ?  
 * La taille de l'écosystème de plugins : Existe-t-il déjà de nombreux plugins disponibles pour les tâches que vous devez effectuer ?  
 * Le modèle de sécurité : Dans quelle mesure la plateforme se protège-t-elle contre les plugins malveillants ?  
 * Le processus de développement du plugin : Est-il facile de créer et de distribuer des plugins pour la plateforme ?  
 * Performances : Quel est l’impact des plugins sur les performances globales du logiciel ?  
  
 En résumé, il existe *de nombreux* logiciels qui permettent aux utilisateurs et aux développeurs d'étendre leurs fonctionnalités via des modules ou des plugins. Le programme spécifique dont vous avez besoin dépend entièrement du type de fonctionnalité que vous essayez d'étendre.
 
 |