代码审查与重构

案例研究:用 Python 构建软件

Mark Pedigo

Principal Data Scientist

定期代码审查的收益

  • 提升代码质量
    • 及早发现不一致
  • 知识共享
    • 协作
    • 保持一致
  • 一致性与最佳实践
    • 高标准

两人在电脑前进行代码审查

案例研究:用 Python 构建软件

代码审查示例

def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result

就以下方面给出反馈:

  • 功能性
  • 可读性
    • 例:不必要的 else
  • 边界情况
    • 例:阶乘的负数输入
案例研究:用 Python 构建软件

代码重构的收益

  • 提升代码质量
  • 维护更容易
  • 减少技术债务

将"意大利面式"代码转为流程图

案例研究:用 Python 构建软件

重构示例

# Original code
def factorial(n):
    if n == 0:
        return 1
    else:
        result = 1
        for i in range(1, n + 1):
            result *= i
        return result
# Refactored code
def factorial(n):
    if n < 0:
        raise ValueError("Not defined")

if n == 0: return 1
result = 1 for i in range(1, n + 1): result *= i return result
案例研究:用 Python 构建软件

为新公式编写新函数

先前公式 $$m = P \cdot \frac{r (1 + r)^N}{(1+r)^N - 1}$$ 其中,$m$ 为月供,$P$ 为贷款额,$r$ 为月利率,$N$ 为月数

新公式 $$P = m \cdot \frac{(1+r)^N - 1}{r (1 + r)^N}$$

案例研究:用 Python 构建软件

路线图

展示项目已完成与将开始部分的路线图

案例研究:用 Python 构建软件

开始练习!

案例研究:用 Python 构建软件

Preparing Video For Download...