如何进行插件化开发
我们很多程序员在接到一项需求的时候,由于时间比较赶或者项目比较急或者程序历史遗留,总会写出让自己都觉得不满意的代码。
同样的功能,不一样的人来写,时间不一样,代码的质量也会不一样。尽管短时间内功能是Ok的,但是以后加新功能,或者需求改变了, 代码质量的好坏直接决定了新功能出来的时间和质量了。
最近自己写了一个node的模块, 通过手机号查询运营商以及号码归属地 ,整个程序写过3遍,虽然最后已经写成了插件式的形式,但是由于能力有限,总觉得好多地方存在不足,却又说不上来。下来就来跟大家分享一下这个模块的结构以及自己的想法。
暂时想到下面这些
附源码地址,Git>
由上图我们可以看到,模块可由使用者配置参数。包括可以配置一次接口调用所需的API的并发数,保证接口以最快速度返回数据;使用者可以指定接口使用特定的插件。
由上图我们可以看到,模块管理提供了基本的方法,添加模块,删除模块,执行模块等。
目前模块自带7个API,均以插件形式编写接入到模块中。由上图我们可以看到,插件开发极其简单,只需要定义插件名字(调用的时候需要用到),数据解析函数parse(因为不同api返回的结果不一样,所以需要统一处理)
当我们开发好一个插件时,如何保证一个插件是work的呢?那就需要通过测试了,写测试用例也比较简单(mocha,should)。
目前插件管理文件写得不是很好,还不够通用,需要继续完善,完整的源码请看-> Git地址