面向复用进行开发

完成一个开发任务有两种做法,一种是面向短期交付的做法,一种是面向长期复用的做法。

第一种做法是更加务实的,先用较小代价完成眼下的任务,通常来说可以快速响应需求,及时回应各方诉求。但第二种做法就不切实际了吗?或者说因为时间有限就无法实现了吗?

我认为恰恰相反,正因为时间紧张,才更应该认真考虑、仔细设计。原因有几点:(1)短期临时任务往往需求多变,在功能、流程、数据、样式等方面都可能反复修改 (2)临时任务的结果也往往是临时性的,任务结束后系统需要回到之前的状态,这意味着你做的所有增、删、改操作以及部署、迁移都要做一遍逆操作,也就意味着实际的成本是我们粗看上去的2倍。(3)如果不想完全丢弃在临时任务中所做的修改,那么还需要在任务完成后进行代码合并,那就意味着你要重新做设计,而这个工作原本就应该在一开始做。

用同样的时间,一种方法是只能满足眼前需求,另一种方法虽然眼前增加了一点额外成本,但却是未来可复用的方法,显然应该采用第二种方法。

那怎么才能做到长期复用?首先,应该反复理解需求,想想它是不是一个通用或常见的需求?有没有可能不仅这次需要,未来某一天又会需要?如果是,那就应该考虑如何能够将成果沉淀下来。第二,完全了解已有系统的设计,清楚新需求影响范围内的功能模块、后台接口、数据库表、配置等。第三,采用无侵入的、可兼容的、可配置的设计。无侵入是尽量不对已有的核心逻辑做修改,比如通过外围进行if-else控制;可兼容是对业务逻辑和数据结构进行扩展,例如对数据库增加一个新的可NULL、带有默认值的字段,对接口返回数据结构增加一个新字段等;可配置是指能够配置是否采用及如何启用新的业务逻辑和功能,甚至可以配置加载不同的模块、不同的class文件。

最重要的是,克服惯性、主动思考,一定能够提高!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容