go学习笔记

无须想 · · 3823 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go build,go test,go tool pprof ,go tool cover。建议了解 -race 参数的使用

推荐工具

gofmt/goimport/goreturn

推荐等级:必须使用 ,应调整为 save 后自动 format。

调整代码格式。goimport 会自动 import go package,在大仓库下速度比较慢,不建议使用。

golint /gometalint

推荐等级:必须使用

go-plus 默认使用 gometalint 。gometalint 自动包含了常见的 lint 如 govet,golint 等。

使用时建议仔细阅读 lint message,了解 lint 相关的详细解释。尽量保证提交代码无 error 和 warnning。

以下 lint error/warnning 可暂时忽略:

  1. 变量名中使用 Id

  2. public 方法或结构没有注释

其中 1 属于历史遗留问题 2 推荐补充但暂时可忽略

代码规范

参照 go 项目本身的代码规范,犹豫的地方可参考 go 的标准库

必读文章,建议至少看 3 遍以上。

https://golang.org/doc/effective_go.html

https://github.com/golang/go/wiki/CodeReviewComments

http://www.runoob.com/go/go-tutorial.html

补充

  1. 如非必要,不要将函数,类型或常量声明为公有。

  2. 注释建议使用简单的英文。

  3. 注释应该针对是 why 而非 how 和 what。

测试:

  1. http://big-elephants.com/2017-09/this-programmer-tried-to-mock-an-http-slash-2-server-in-go-and-heres-what-happened/

  2. https://www.markphelps.me/testing-api-clients-in-go/

git status # 这一步不是必须的,但良好习惯应该确认下被更改的文件是自己所修改的
git diff # 这一步不是必须的,用于查看详细的代码修改
git add <modified_file1> <modified_file2> <modified_dir3> ...
git commit -m "IssueId:**** The message for this commit, which explains why you modify the related code"
git status # 确认一下所有的更改都commit了
git log # 这一步不是必须的,用于查看历史的commit记录


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:无须想

查看原文:go学习笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3823 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传