Type: concept
Confidence: 0.85
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码异味函数设计AI工程

长函数

概述

长函数是代码异味的一种,指那些长度超过合理范围、功能过于复杂的函数。通常表现为函数行数过多、嵌套层级深、职责不单一,导致难以理解和维护。

关键内容

  1. 特征识别
  2. 函数超过30-50行
  3. 需要滚动屏幕才能看完
  4. 嵌套层级过多
  5. 需要注释来解释局部逻辑
  6. 包含多个不同的操作逻辑

  7. 负面影响

  8. 难以理解函数的整体逻辑
  9. 难以进行独立的单元测试
  10. 修改容易影响其他不相关的逻辑
  11. 容易隐藏重复的代码逻辑
  12. 增加引入bug的风险

  13. 重构策略

  14. Extract Method:将函数的一部分提取为独立的方法
  15. Replace Temp with Query:用查询函数替代临时变量
  16. Introduce Parameter Object:当多个参数相关时引入参数对象
  17. Replace Method with Method Object:对于复杂函数使用方法对象模式
  18. Decompose Conditional:分解复杂的条件逻辑

  19. 重构示例: ``` // 重构前:一个包含订单验证、计算总额、发送通知的长函数 function processOrder(order) { // 验证逻辑 (20行) // 计算逻辑 (30行) // 通知逻辑 (20行) }

// 重构后:将功能拆分到独立函数 function processOrder(order) { validateOrder(order); const totals = calculateOrderTotals(order); sendOrderNotifications(order, totals); return { order, totals }; } ```

来源

相关