Go 语言最佳实践
首页
打印
首页
下载pdf
目录 搜索
  • 介绍
  • 指导原则
    • 简单性
    • 可读性
    • 生产力
  • 标识符
    • 选择标识符是为了清晰,而不是简洁
    • 标识符长度
      • 上下文是关键
    • 不要用变量类型命名你的变量
    • 使用一致的命名方式
    • 使用一致的声明样式
    • 成为团队合作者
  • 注释
    • 关于变量和常量的注释应描述其内容而非其目的
    • 公共符号始终要注释
      • 不要注释不好的代码,将它重写
      • 与其注释一段代码,不如重构它
  • 包的设计
    • 一个好的包从它的名字开始
      • 好的包名应该是唯一的
    • 避免使用类似 `base`,`common` 或 `util` 的包名称
    • 尽早 `return` 而不是深度嵌套
    • 让零值更有用
    • 避免包级别状态
  • 项目结构
    • 考虑更少,更大的包
      • 通过 `import` 语句将代码排列到文件中
      • 优先内部测试再到外部测试
      • 使用 `internal` 包来减少公共API
    • 确保 `main` 包内容尽可能的少
  • API 设计
    • 设计难以被误用的 API
      • 警惕采用几个相同类型参数的函数
    • 为其默认用例设计 API
      • 不鼓励使用 `nil` 作为参数
      • 首选可变参数函数而非 `[]T` 参数
    • 让函数定义它们所需的行为
  • 错误处理
    • 通过消除错误来消除错误处理
      • 计算行数
      • WriteResponse
    • 错误只处理一次
      • 为错误添加相关内容
      • 使用 `github.com/pkg/errors` 包装 `errors`
  • 并发
    • 保持自己忙碌或做自己的工作
    • 将并发性留给调用者
    • 永远不要启动一个停止不了的 goroutine
暂无相关搜索结果!

本文档使用 topgoer 发布

错误处理

我已经给出了几个关于错误处理的演示文稿[8],并在我的博客上写了很多关于错误处理的文章。我在昨天的会议上也讲了很多关于错误处理的内容,所以在这里不再赘述。

  • https://dave.cheney.net/2014/12/24/inspecting-errors
  • https://dave.cheney.net/2016/04/07/constant-errors

相反,我想介绍与错误处理相关的两个其他方面。

最后编辑: kuteng  文档更新时间: 2021-01-09 21:49   作者:kuteng

项目分享

扫一扫手机阅读

项目分享

扫一扫手机阅读