mit6.031 2023spring 软件构造 笔记 Code Review

Code review是帮助自己提升代码质量的关键一环。

Don’t repeat yourself (DRY)

**Copy-and-paste is an enormously tempting programming tool, and you should feel a frisson of danger run down your spine every time you use it **

重复代码增加维护成本和错误风险

应提取重复逻辑为函数/常量/数据结构

// Bad: 重复计算月份天数
// Good: 使用数组存储月份长度
const monthLengths = [0, 31, 28, 31, 30, ...];

Comments

  • 一种关键注释是规范,出现在函数上方或类上方,并记录函数或类的行为。

  • 通常最好将代码划分为段落、具有重点用途的行组,并在每个段落以注释作为主题句开始,解释该目的:

// prepare the rocket
...
...
...

// launch the rocket
...
...
...

// enter orbit
...
...

避免魔数

应使用命名常量或枚举

const FEBRUARY = 2;
const DAYS_IN_JANUARY = 31;

变量单一职责

不要重复使用参数,也不要重复使用变量。变量在编程中并不是稀缺资源

尤其函数参数,通常应保持未修改状态。(这对于为变更做好准备至关重要 —— 未来,函数的其他部分可能需要了解该函数的原始参数是什么,因此在计算过程中不应将其覆盖。)

尽可能为更多变量使用const是个好主意,因为该关键字表明变量不应被重新赋值,而 TypeScript 编译器会对其进行静态检查。遗憾的是,TypeScript 目前(尚未)支持将函数参数声明为const,以防止其在函数体内被重新赋值。

命名规范

  • 变量名:名词短语(secondsPerDay
  • 函数名:动词短语(isLeapYear
  • 避免缩写:message 而非 msg
  • 遵循语言惯例:TypeScript 使用 camelCase

避免全局变量

难以追踪修改,导致不可预测行为

改进:使用参数传递或局部变量,常量用 const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值