"代码重用性"是开发人员经常提起的问题。 但是到实际项目中,很多人并不知道怎么落地。
本文介绍一些方法,可以帮助你编写可重用的代码,节省宝贵时间。
一、 项目开始前,要有个正确的规划
在开始正式编码前,召集团队成员,规划应用程序所有的需求,并按照水平方向分层,垂直方向模块化的方式来划分。
例如 —— 考虑一个需要数据模型、数据库、组件控制器和视图的应用程序。 所有这些单元都应该以同样一种方式开发,通过有效的分层,降低层与层之间的依赖。比较简单的【表现层/业务层/数据持久层】的分法可以借鉴。 这些分层可能是团队里不同人员负责的,好的分层方式,有助于将来的升级维护,技术邻域常说的低耦合设计方式,就是这样的道理。
高耦合的极端例子, 就是oracle版本升级的时候,一个简单的bug,都需要非常专业的技术人员测试修改2周。可见高耦合系统,在系统升级维护上,造成巨大的成本支出。
二、创建通用的功能函数类库UtilityClass
这些类库应该是跟项目本身无关, 可以直接在其他项目中使用。例如
所有日期字符串格式方法;
Html 错误代码检测和错误信息;
电子邮件验证;
日期格式;
图像压缩;
图像转换(png-jpg 或反之亦然);
图片下载;
Excel处理;
文件格式转换;
可被抽象的, 在多个项目中,无差别使用的功能,都应该添加到通用类库UtilityClass中。
三、 尽力避免复制粘贴代码片段
初级开发人员经常将代码片段从一个模型复制到另一个模型,而没有为它创建一个单独的公共类 。 当需要更改任何逻辑或要添加新代码时,需要在所有其他地方进行更新。
任何一组代码至少需要两次,你应该为其制定一个方法,一堆相似的功能或相同用途的功能放在一个新的类中, 一堆没有任何依赖性的类构成了一个包或可重用的库。
当然初级开发人员可能是因为抽象能力弱,或者是图前期的省事,大量复制粘贴代码片段,造成后面系统维护困难的局面。
四、将一个复杂的过程拆分成几个简单的过程
拆解后,每个简单的过程,都有比较明确的职能。 这样简单的过程具有很好地重用性,而不是仅服务于一处代码。
假设您需要解析一个 json 文件,选取一个出生日期并计算年龄。 这个任务非常小,以至于人们在大多数情况下都希望用一种方法编写整个任务。 实际上你应该分两步来完成,解析 json 并从中创建一个模型对象, 然后传递给另外一个方法,该方法用于计算年份中两个日期之间的差异,得出年龄。 看似琐碎的拆分,我们得到了2个可重用的过程,解析模型过程,计算年龄过程。 大部分初级人员需要养成正确拆解复杂过程的良好习惯。
五、做一个思想勤快,四肢懒惰的程序员
资深的技术会建议大家做一个思想勤快,四肢懒惰的程序员,一生不要写两次类似的代码。 不断提高抽象思维能力,以跨项目有用的方式编写代码/方法。
通过上面的介绍,大家对如何提高代码重用性应该有了不错的了解。
当然想要在代码重用性层面上,有更进一步的造诣,需要更深入的研究, 比较好的方向就是借鉴低代码编程。
低代码编程的整个设计思想,把代码重用性推向了极致。 组件、元素、单页、权限、事务、前后端函数等都是跨项目重用的。
原来认为无法抽象的业务层, 通过无结构系统设计的思路,在线配置也完成了重用。
深奥的内容,不适合于普通的技术人员,这里就不展开讲, 欢迎资深的技术人员私信探讨。