设计一个好的通用组件
今天看了同事写的组件,有一些感触,怎么才能设计一个好的组件呢?我感觉应该要包含下面几点:
1. 要易用 (至少让使用者能够简单方便的引入到程序当中)
2. 要稳定 (需要增加关键的测试)
3. 要灵活(关键参数可配置)
4. 要全面(日志、拦截器、监听器)
5. 要谨慎(要考虑多种情况)
6. 要易读(写的东西要能给别人讲清楚)
如何做?
1.如何做到易用,所谓众口难调,你觉得好用,其他人未必这样觉得。做一个组件之前,先了解各方使用者的需求或许是最好的选择,不要让别人适应你而是应该适应别人,并且多采用一些公认的设计模式方法,也可以提高自己的设计能力。
2.如何做到稳定,系统关键点可以多编写一些单元测试适应不同的场景,在有外部访问的组件当中,可以适当增加压力测试。
3.如何做到灵活,系统设计的时候,先要确定“变化”和“不变”,对于变化除了默认值可以增加一些配置文件选项,让使用者能够自己配置,或者开放一些抽象类和接口,让调用者自己实现。
4.如何全面,当你做一个组件的时候,别人可能也会关心,发生异常或者变化的情况,这个时候适当的增加一些日志,更进一步增加一些回调方法,或许能够为排查问题,处理异常以及后续其他操作提供一些便利条件。
5.怎么谨慎,做组件的时候,考虑到被各种不同的使用者使用,这里就需要将异常情况或者各种条件分钟考虑清楚,当变量是非法值的时候需要系统能够有效的处理,或者在输入的时候提前判断,或者做好异常处理。
6.要容易读,很多人在写组件的时候,都不注重代码的注释和更新的履历,殊不知这样的情况就是当时间比较长之后,很难理解自己的代码也很难让别人看懂,不能因为只是给别人中的组件不涉及到业务就不去写注释,良好的习惯也是程序员价值的衡量标准。