5. 为扩展和插件提供架构

您可能希望其他软件供应商为您的产品插入扩展程序。由于您是初始软件的作者,因此您有责任以这样一种方式组织它,使用户可以简单地安装扩展 RPM 并使用它,而无需强制他修改任何配置文件。这再次是著名的即装即用,保证了易用性。

嗯,扩展程序只不过是一些格式正确的文件(实现您的软件定义的 API 的 DLL),放在正确的文件夹中(您的软件查找扩展程序的目录)。

我们可以看到许多应用程序要求用户更改配置文件以“声明”新插件的存在。这是一种糟糕的方法,必须避免,因为它会使用户或插件提供商的生活更加艰难。

在您的插件架构中要考虑的最重要的事情是不要在插件和您的软件之间共享文件。您应该提供一个架构,在该架构中,插件将能够通过简单地在您软件中记录的特定目录中放入和删除文件来完全安装和卸载自身。好的选择是/usr/lib/myproduct/plugins作为插件目录,以及/etc/myproduct/plugins作为插件配置文件目录。您的软件和插件必须足够智能,以了解如何在这些目录中查找文件,特别是配置。

使用这种方法,用户和插件提供商都不需要任何安装后程序。

5.1. 插件抽象化

我想结束这个主题,邀请读者进行抽象思考,并考虑任何软件都可以被视为较低级别软件的扩展。就像第三方插件是您的软件的扩展一样,您的软件也是操作系统(较低级别)的扩展。这就是所有集成(来自本文档的标题)魔力所在。因此,我们可以将我们之前讨论的所有易用性概念应用于您的软件的插件架构设计。