- 大重构
- 功能、模块的重新设计、分配、划分。
- 先想要职责的划分、交互的设计(如何传递事件等)
- 然后先把必须要调整的地方重新放好(比如前端应用先把HTML元素重新整理分配到各个组件)
- 最后再把附属的功能性代码也放到对应的地方,直至没有错误和功能性bug(比如前端应用先把ts等逻辑代码跟着对应的HTML重新整理分配到各个组件)
- 功能、模块的重新设计、分配、划分。
- 小整理
- 格式化。
- 必须,且团队使用同一的格式化标准,可以在IDE中导入导出进行共享。
- VS Code等IDE中可以设置保存时自动格式化,可参考VS Code小技巧。
- 对成员变量、函数、引入的包进行排序
- 统一功能相关的放在一起,中间最好放一个空行
- 共有的在前,私有的在后
- 整理引用包的顺序、函数的顺序
- 命名
- 可读性强
- 符合业务逻辑,一看就知道用途和怎么用
- 含义别弄反了
- 需求有变化时,要相应的改名字,不要偷懒实现功能就行,这样的话名字就容易让人误解
- 避免歧义
- 不要太长
- 规范,比如常量名都大写,用下划线分隔
- 可读性强
- 使用卫语句,避免过深的if判断
- 也可以把多个卫语句提取成一个检查函数
- 提取魔法数为常量、枚举等
- 可以放到单独的常量类中做汇总
- 提取函数
- 提取公共函数
- 最直接的办法就是观察哪些代码段是类似的。
- 可以把想要提取的几个地方的代码放到beyond compare中对比一下,更容易找出异同之处进行下一部整理。
- 这是一个持续的过程,有可能是4段代码变2段,2段代码再变1段。
- 如果if else代码段中有类似的代码段,可以提取到外面。
- 提取入参
- 如果不同之处只是一些字符串,可以当成参数传进来。
- 如果不同之处是一些函数调用不同或者逻辑不同,可以把type当成参数传进来,进行if else判断。也可以考虑封装成不同子类,然后用字符串判断进行new不同的逻辑子类、或者到字符串到子类的字典中查询,或者使用策略模式?
- 与界面无关的特定业务逻辑
- 数据检查函数
- 提取公共函数
- 移除没用到的变量、引用、导入包等
- 用#region代码块来分类整理同一类文件中的众多功能函数
- 如events、logic、members、init、common、inputs & outputs等。
- 格式化。