求助:前辈们可以分享一下你们觉得比较良好写 golang 代码的习惯吗

84 天前
 lllsj
各位前辈你们好,我最近刚入职一个公司实习,公司这边用的都是 Golang ,我也是刚上手没多久,请问各位可以分享一下平时写 go 比较好的习惯吗,我想学习学习,不胜感激
2340 次点击
所在节点    Go 编程语言
16 条回复
securityCoding
84 天前
kiss
GeekGao
84 天前
老生常谈,SOLID 原则
konakona
84 天前
我推荐去了解 Go 语言研发作者团队的构想,你就会发现他们压根没有你的这些考虑,一切从简出发。
poltao
84 天前
不用考虑太多,公司代码跟着存量的代码保持已有代码风格就可以了,重要的是要多理解业务,便于以后出去面试吹牛。最后如果未来面试也是 golang 方向的话可以多看看 golang 的八股文,了解下异步编程和 GMP 模型,有时间理解下 RPC 框架,看看 golang 常用的 etcd, mq 等微服务组件足矣。
povsister
84 天前
go 的风格就是没有统一风格。跟项目风格,否则你水平比项目高或者低写的都只会很憋屈。
lllsj
84 天前
@poltao #4 嗯嗯,好的感谢
lllsj
84 天前
@povsister #5 确实,我感觉我接手的代码风格就很乱,跟我同批的实习生他们组的代码写的就很规范
dododada
83 天前
不要用魔法变量, 能跑就行
uds9u32br
83 天前
不要有什么设计是最好的,除非必要,否则应该禁用设计模式。
试着模仿标准库的代码风格吧。
chouvel
83 天前
@poltao 很认同。感觉可以思维也可以应用在其他工作上。
ryalu
83 天前
lveye
83 天前
比如一些容易踩坑的点:

timer := time.NewTimer(time.Minute)
defer timer.Stop()

----
for i := range array {
i := i
go func() {
fmt.Println(i)
}()
}

----
resp, _ := http.Post(urlStr, "application/x-www-form-urlencoded", body)
defer func() {
_ = resp.Body.Close()
}

----
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()

go func(i int)
// do something
select {
case <- ctx.Done():
fmt.Println(i)
}
}(i)
Biem
82 天前
go 的风格就是 go ,just go ,let it go ,越简单越好,只要不碰 unsafe ,能跑起来就是好代码。然后节省下来过度设计和思考的时间去体验生活。
windcode
69 天前
可以阅读一些开源项目的「开发者指南」部分,已经帮你总结好了优秀的编码规约:
- 代码规约: https://www.kusionstack.io/zh/karpor/developer-guide/conventions/code-conventions
- 测试规约: https://www.kusionstack.io/zh/karpor/developer-guide/conventions/test-conventions
- Commit 规约: https://www.kusionstack.io/zh/karpor/developer-guide/conventions/commit-conventions
lllsj
68 天前
@windcode #14 好的,感谢您
qloog
65 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1076928

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX