// ✅ 正确:驼峰命名
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 ./...- 代码符合团队规范
- 有足够的单元测试
- 错误处理完善
- 无明显性能问题
- 注释清晰
- 无安全漏洞
// 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提升质量
- ✅ 持续重构优化代码