软件快速开发平台,其本质是将重复的底层功能提取出来,已组件的形式嵌入到框架之中,力求最大程度的减少开发人员的开发难度,节省开发时间。
但是一个快速开发平台要做到面面俱到,几乎是不可能的,因为企业的情况千差万别,要想尽可能的做到尽善尽美,必须要具有一定的开放性,自定义插件必不可少。
比如,我们做了一个产品功能,姑且叫做订购消息通知吧,就是每当有订单的时候,系统会自动给相关销售人员发送站内通知,好嘛,不难,很快我们把软件产品给客户部署过去了,这时候问题出现了:
客户甲说:我们想要在发送通知的时候,把采购信息给SAP系统同步过去。
客户乙说:我们需要在发送通知的时候,给企业官方头条账号一个赞。
客户丙说:我们希望在发送通知的时候,给销售经理的手机发条短信。
客户丁说:我们以上都要。
那么,作为开发人员的你,怎么办?
客户当时答应不改需求的,我们该做的都做完了。
如果你这么想,那就too young too native了,这时候你可以有几种选择:
1.辞职,老子不伺候了
2.让客户先停工,把产品重新拿回来加上新功能,时间肯定是越短越好了
3.客户产品照用,开发新插件解决问题
实际上,客户提出的这些功能要实现本身不难,也许几天就能解决了,但是主要问题在于和原有产品功能进行整合。
正常流程我们需要重新开发、测试、打包、实施、发布,这个流程下来,周期就会变得很长,成本也就相应的变高了,而且更要命的是,客户基本不会给你机会重新实施,新的要求随时会来,所以我们真正要做的就是把热功能部署,写个dll实现功能,然后在线给客户更新上去。
具体可以这样实现:
我们预先在消息订购通知这里定义好接口,然后,我们在发送完订单消息后,查找系统里有没有订单发送消息插件(Dll),如果有的话,就加载这个插件,然后通过反射查找插件实现的AfterOrderSend方法,最终就可以完成插件中功能的调用。
那么插件如何实现呢?
因为接口是公开的,所以插件只要实现接口就行了,具体的业务在AfterOrderSend方法里可以根据实际需要写,你发短信也好,点赞也好,总归都可以在插件里实现。
其中整个流程比较关键的是插件的注册,因为插件是我们给客户部署后才开发的,所以我们产品本身需要有插件注册和管理机制,统一对插件进行处理,比较常用的思路为:
系统提供插件上传功能,随时可以上传插件。
系统提供插接接口识别功能,可以自动或者用户手动指定插件实现的接口。
系统可以自动加载插件,并自动进行反射调用。
单个调用点可以处理多个插件的链式调用。
其实,这种模式对程序员不陌生,我们定义插件的调用点,就相当于我们开发中系统提供的事件,我们的dll插件就相当于事件处理程序,我们整个插件的机制,就是模仿事件处理程序的处理。
至此,我们就可以随时实现我们预先意想不到的功能了,任凭客户出什么古怪需求,一个插件就解决了。
这就是自定义插件在快速开发平台中的重要作用,以传统开发方式为基础,以敏捷思想作指导,这样开发出来的产品可拓展性强,用户满意度也会很高。
网友评论