Skip to content

L19. 重构与优化:让代码更性感

Vibe Coding 宣言:写出来的代码是给机器跑的,也是给人看的。别让你的代码像一坨面条。

0. 为什么这一课至关重要? (Why It Matters)

  • 可读性 (Readability):三个月后回来看自己的代码,还能看懂吗?
  • 技术债 (Technical Debt):现在的偷懒,就是未来的加班。
  • Pythonic:同样的功能,Java 可能要写 10 行,Python 只要 1 行。学会这一行怎么写。

1. 目标 (Goal)

识别代码中的 坏味道 (Bad Smells),并利用 Claude 进行 重构 (Refactoring),使代码符合 PEP8 规范。

2. 核心概念/装备/指令 (The Core)

2.1 坏味道 (The Smells)

  • Long Method: 一个函数写了 100 行。
  • Magic Number: if x > 300 (300 是啥?)。
  • Duplicate Code: 复制粘贴了三遍一样的逻辑。

2.2 重构手法 (The Moves)

  • Extract Method: 把那一坨代码提出来,变成一个小函数。
  • Rename: 给变量起个好名字。
  • List Comprehension: 列表推导式,Python 的精髓。

3. 实战演练 (Action)

Step 1: 识别坏味道

找一段你写的烂代码(比如 L14 里的爬虫)。

Step 2: 让 Claude 诊断

markdown
# Context
我有以下代码 [粘贴代码]。

# Task
请指出代码中的坏味道 (Code Smells)。
重点关注:函数过长、命名不规范、硬编码。

Step 3: 让 Claude 重构

markdown
# Task
请帮我重构这段代码。
要求:
1. 拆分函数,每个函数不超过 20 行。
2. 使用 Type Hint (类型提示)。
3. 使用 Pythonic 写法 (如列表推导式)。
4. 保持原有功能不变(确保测试通过)。

Step 4: 对比效果

Before:

python
res = []
for i in range(10):
    if i % 2 == 0:
        res.append(i * i)

After:

python
res = [i * i for i in range(10) if i % 2 == 0]

4. 常见问题 (FAQ - Vibe Style)

Q: 什么时候重构? A: 随时。 只要觉得看着难受,就改。尤其是当你准备复制粘贴的时候,停下来,重构。

Q: 重构改坏了怎么办? A: 这就是为什么要先写测试! 有了测试,你才敢大胆重构。如果不跑测试就重构,那叫“裸奔”。

Q: 所有的 for 循环都要改成列表推导式吗? A: 不。 如果逻辑太复杂,还是写成 for 循环清楚。可读性永远第一。

5. 验收标准 (Definition of Done)

  1. 所有函数不超过 50 行。
  2. 没有 a, b, tmp 这种无意义的变量名。
  3. 使用了 Type Hint (如 def add(x: int) -> int:)。
  4. 运行 pylint 评分超过 8.0。

Next Mission: L20. 第二次评审 (Code Review):安全与规范

基于 Claude Code 构建