Skip to content

Latest commit

 

History

History
115 lines (83 loc) · 1.99 KB

File metadata and controls

115 lines (83 loc) · 1.99 KB

10.2 代码质量与规范

📍 导航返回目录 | 上一节:测试体系 | 下一节:技术方案


Go编码规范

命名规范

// ✅ 正确:驼峰命名
type UserService struct {}
func GetUserByID(id string) {}

// ❌ 错误:下划线
type user_service struct {}
func get_user_by_id(id string) {}

// 导出标识符:大写开头
type PublicStruct struct {}

// 私有标识符:小写开头
type privateStruct struct {}

错误处理

// ✅ 正确:显式处理错误
result, err := SomeFunction()
if err != nil {
    return fmt.Errorf("failed to do something: %w", err)
}

// ❌ 错误:忽略错误
result, _ := SomeFunction()

静态分析

# golangci-lint
golangci-lint run

# go vet
go vet ./...

# staticcheck
staticcheck ./...

Code Review检查清单

  • 代码符合团队规范
  • 有足够的单元测试
  • 错误处理完善
  • 无明显性能问题
  • 注释清晰
  • 无安全漏洞

重构

提取函数

// Before
func ProcessOrder(order Order) {
    // 验证订单
    if order.Amount <= 0 {
        return errors.New("invalid amount")
    }
    // 计算价格
    total := order.Amount * order.Price
    // ...50行代码
}

// After
func ProcessOrder(order Order) error {
    if err := validateOrder(order); err != nil {
        return err
    }
    
    total := calculateTotal(order)
    // ...
}

func validateOrder(order Order) error {
    if order.Amount <= 0 {
        return errors.New("invalid amount")
    }
    return nil
}

本章小结

关键要点

  • ✅ 遵循编码规范
  • ✅ 使用静态分析工具
  • ✅ Code Review提升质量
  • ✅ 持续重构优化代码

⏮️ 上一节:测试体系 | ⏭️ 下一节:技术方案