示例成品 · 平台演示,按左边这组点选真跑出来的
【问题诊断】
这个 900 行的 handleRequest 把参数校验、业务逻辑、SQL 拼接、返回格式化全揉在一起,圈复杂度约 47,是典型的「上帝函数」。
【重构方案 · 小步安全】
第1步:抽出参数校验 → validateInput(),做成纯函数,最好测。
第2步:抽出数据访问 → OrderRepository,把 SQL 隔离出去。
第3步:主流程只剩编排:校验→取数→计算→组装响应。
【重构后主流程示意】
def handle_request(req):
params = validate_input(req)
orders = repo.find_orders(params)
result = calc_summary(orders)
return to_response(result)
【安全网】
每抽一步都先跑一遍现有回归用例,确保对外行为不变,绝不一次性推倒重写。抽离顺序上先动最独立、最好测的校验和取数部分,把风险留到最后。
【落地节奏建议】
一个上帝函数不必一天拆完,可以按上面三步分三个小提交,每个提交都能独立通过测试并合入,既降低评审压力,也方便出问题时快速回滚定位。
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)