一、关于软件插件
一个软件要对扩展开放才有生命力,面对对象设计原则里面的开闭原则就是这个意思。
软件的扩展方式一般就两种,一种是通过插件机制,软件开放插件的形式实现软件自身的扩展,让软件实现更丰富的功能,值得注意的是插件是基于原来软件运行的。打一个比方就是原来软件类似一个操作系统,一个个的插件就像是运行在里面的软件一样。大名鼎鼎的WordPress,利用各种丰丰富的插件就可以无所不能,它本来是一个cms,也就是简单有内容信息系统,通过插件可以用来做商城系统,电影视频网站,招聘网站,问答网站,在线社区,知识库wiki等。
另外一种提供软件的是平台模式,比如微信开放平台,淘宝开放平台,支付宝开放平台,企业微信、钉钉等。平台提供一些基础接口和接口应用的协议或者方式,开发者可以开发自己的软件或者系统集成、发布到平台。这样实现平台功能的补充,构建一个丰富的软件生态。
那么这两种方式有什么区别呢?
插件是基于软件主程序运行的,插件与原软件共享内存与服务器资源,插件如果过多可能会存在资源竞争,内存占用过大,导致软件卡顿现象(比如:eclipse、myeclipse等)。如果某个插件错误,也可能导致软件启动失败。但是优秀的插件应该会实现插件之间隔离和保护,从而不会相互影响&#