前端业务项目重构总结

70 阅读2分钟

背景; 目前业务开发,除了迭代需求,之外其实更多的是维护工作,那么如何更高效,省力的迭代,以下是自己一些实践总结

代码组织层面

命名

  1. 不要小看命名规范,对于较为复杂的业务,如果充斥着大量重复,无意义命名,比如全局变量名称和局部变量名称一致,抽象提炼就麻烦了,分不清了,以及合理的变量命名,做到简洁,易懂即可。

函数

  1. 有时为了省力气,会习惯把一堆业务逻辑,全部都杂糅到一个函数,里面,但是这样很不符合单一性,原则,理解,调试很困难,所以遵循拆分解耦,把函数分为独立的子模块,再进行组合
  2. 函数参数,如果较多,尽量以对象解构形式传递,不要单个传递,避免参数传递顺序。
  3. 对于多分支判断,学会用策略模式,表映射,去做
  4. 对于重复用到的表达式,尽量用变量声明

工程框架层

  1. 对于项目不常更新的包,进行分包处理,比如ui库,react 库等
  2. 对于容易重渲染场景,学会用ahooks 如 useUpdate , useTrackEffect进行调试,开发
  3. 以mvvm形式,将项目拆分为,视图层,模型层,数据层,也就是平时写的ui组件了不要杂糅太多数据处理,业务逻辑,组件只管承接数据,并展示数据,这样,排查问题,就可从数据层,还是渲染层面进行调试

设计模式层面

  1. 适配器模式,对于业务开发中,经常存在,各种不同结构的数据源,有时比如你需要做导出文件时需要批量整合数据,那么就利用适配器的思路,将多个数据源的数据进行统一格式,再去处理。

业务数据层面

  1. 在业务开发中,会因为异步数据,导致切换参数时导致新旧数据交错返回问题,其实本质上,也是一个请求竞态的问题。

js,react 层面

1.useEffect 本身默认会去执行一次主要是方便开发者去自查,但是有时会导致重渲染的问题,所以可以配合ahooks 里面的useUpdateEffect来避免 2. 前端中报错,排行第一就是 undefined 报错,一方面语言层面可以采用 Typescript 另一放面,对于比如,对象的解构或者访问,去添加兜底值 3.

const { res,arr} = target || {res: ‘’,arr:[]}