一. 背景介绍1. 我们为什么要做项目重构项目重构是每一家稳定发展的互联企业的必经之路, 就像一个产品的诞生, 会经历产品试错和产品迭代 一样, 随着业务或新技术的不断发展, 已有架构已无法满足更多业务扩展的需求, 所以只有通过重构来让产品“进化”, 才能跟上飞速发展的时代浪潮.
文章插图
图片
这里我结合自己的实际经验总结一下项目重构的几个原因:
1. 技术因素技术因素主要有如下几个方面:
- 早期技术团队在技术选型上的误判(常发生于MVP类型的产品快速上线导致的技术调研不够充分)
- 新老技术框架的更替(比如从 jquery 迁移到 vue/react)
- 技术团队交接出现的断层(老技术团队的架构设计更不上新技术团队的发展, 出现架构上的“平替”)
- 技术架构升级(比如随着业务发展, 由传统的MPA应用转为基于微前端模式的SPA应用)
- 安全,性能,代码质量等原因导致的技术重构
- 产品形态调整(比如由纯PC应用转为响应式应用, 或者从H5到支持跨端)
- 产品业务调整(非常常见的重构理由之一)
- 产品指标调整(如兼容性, 性能指标等导致的代码重构)
最后总结几条架构设计的经验:
- 能做规范的一定要严格做好规范
- 在设计架构之前, 一定要充分理解业务场景, 明确产品的技术交付指标
- 架构设计以可溯源 为基本要求
- 不要盲目追求最好的方案, 以局部最优解为工程设计理念
- 对项目所使用的框架语言有相对深入的理解和掌握
- 有一定的前端工程化经验(如webpack, vite, gulp, nodejs, babel, AST等有一定的研究)
- 熟悉常用的web性能优化方案
- 熟悉常见的设计模式和前端编码规范
- 熟悉前端主流的技术框架的设计原理和工程设计思想
二. 不同类型项目重构的方法论1. 业务系统自身的重构业务系统自身的重构一般可以包含如下几个方面:
- 业务代码优化
- 复杂业务逻辑需要编写注释
- 代码中访问性属性提供兼容逻辑(常见的比如访问对象属性, a.b.c, 如果a,b为非对象则整段代码将报错)
- 代码结构优化(比如冗长的if else 或者“回调地狱” 可以采用适配器模式或者es6+语法来优化)
- 方法参数调优(一个函数有多个参数, 可以使用参数对象来提高可读性,降低使用偏差)
- 业务代码性能优化(复杂后台系统比如低代码类产品, 前端需要处理很多数据和逻辑, 此时可以用合适的数据结构和算法优化js计算)
- 函数式编程思想优化业务函数(可选)
- 业务代码进行单元测试, 提高代码质量(可选)
- 代码规范
推荐阅读
- 农村养殖好项目有哪些 农村养殖好项目
- 方特游乐园有什么项目,太原方特水上乐园有哪些游乐项目
- 南京欢乐谷有哪些游乐项目
- 应届生找工作没有项目经验怎么办
- 我在前端写Java SpringBoot项目
- 百度网盘、百度文库等产品已完成AI重构
- 用IntelliJ IDEA进行前端开发
- 八个适合程序员接私活赚钱的开源项目
- 解密前端三巨头:HTML、CSS和JavaScript的关系
- 传感器原理及应用项目实例型 传感器原理及应用