我正在寻找关于“如何以模块化方式设计应用程序”的指针、建议、链接、警告、想法甚至轶事。我打算在这个项目中使用python,但是建议不一定要引用这种语言,尽管我只愿意实现基于OOP的设计。
这里有一些上下文来了解我来自哪里以及我想要实现的目标......
我的项目将是一个小型应用程序,它将使用 Web 服务并以多种方式显示结果,包括:
- 仅包含呼叫结果的通知弹出窗口
- 应用程序主窗口中的选项卡,其中包含从检索到的原始数据绘制的图形
- 消息缓冲区(在域上可见),来自各种服务的结果将堆积起来
该应用程序将作为免费(as-in-speech)软件发布,因此我想让其他开发人员非常容易编写插件/模块,这些插件/模块将扩展主应用程序的功能而无需更改核心代码。
此时,插件本质上应该使开发人员能够通过定义提供者、数据操作(如果有的话)以及将数据呈现给用户的方式来激活新的 Web 服务。
我在使用具有强大模块化方法的drupal进行开发方面拥有丰富的经验,但它也遵循非面向对象的设计,因此我怀疑对于 python,drupal 设计可能不是最佳解决方案。
如果这很重要 - 核心将为 GNU/Linux 原生开发。
提前感谢您的宝贵时间!