写代码久了,或多或少都会遇到这种情况:翻出一段旧代码,完全看不懂当初在干什么;或者接手别人的项目,光理解逻辑就花掉半天。重构是免不了的,但传统的手动重构很吃经验。近几年大模型能力上来以后,我发现用 Prompt 来辅助重构,可以省下不少力气——前提是 Prompt 得写对路子。
什么样的代码算'可读'?
要让模型帮你重写,总得先告诉它什么是好的。我一般从五个维度来卡:
- 命名:变量名、函数名得一眼看出是干嘛的,别用
a、b这种,也别乱缩写。 - 函数设计:一个函数就干一件事,太长、参数太多都不行。
- 逻辑简化:别搞三四层嵌套,能用字典映射解决的别堆
if-else。 - 注释:不是为写而写,要解释'为什么',尤其复杂的地方。
- 复用:重复代码抽出来,别到处复制粘贴。
光说概念有点虚,看几个例子就明白了。
命名
变量名用a、b这种,只会让一个月后的自己头疼。比如这段 Python:
# 原来的代码
def f1(d, k):
res = []
for i in d:
if i == k:
v = d[i]
if v > 10:
res.append(v)
return res
改成下面这样,函数名和参数名都说明了意图,列表推导式也把嵌套减到了一层:
# 重构后
def filter_dict_values_by_key(dict_data: dict, target_key: str) -> list:
"""根据指定键筛选字典中大于 10 的值,并返回结果列表
参数:
dict_data: dict - 输入的字典,键为字符串类型,值为数字类型
target_key: str - 需要筛选的目标键
返回:
list - 符合条件的值组成的列表(仅包含 target_key 对应的值且该值>10)
"""
return [value for key, value dict_data.items() key == target_key value > ]


