Golang Go语言开发过程中大佬们有哪些最佳实践或经验之谈供学习

发布于 1周前 作者 ionicwang 来自 Go语言

大家都说 golang 写业务代码异常处理啰嗦 直接 panic 不好吗 我看 gin 这种框架都给你自动做了 Recover 还支持统一在一个地方处理异常信息
Golang Go语言开发过程中大佬们有哪些最佳实践或经验之谈供学习

26 回复

更多关于Golang Go语言开发过程中大佬们有哪些最佳实践或经验之谈供学习的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你们平时使用依赖注入多吗 对象多的时候如何管理和传递

英语好不好,英语好去读这本书《 100 Go Mistakes and How to Avoid Them 》;英语不好就去找找翻译,或者使用翻译软件翻译读完。

先看官方库源码,有很多文章会去解析,可以省很多力。
然后就去看自己常用的开源库的源码。
有需求就根据自己的需要去修改开源库。
每天花两小时,不出一个月,你就可以在简历中写精通 Go 了。

经验一:不要带着 Java 的那一套来写 Go

这个有中文版的了

有没有啥实际业务中,目前在学习写 crud , 哎!各种 struct 写的脑袋疼!

不要用 golang 强行写 OOP

依赖注入不多, 如果你在一些公司被要求使用公司的脚手架以及一些定制的框架的话,会见到。
用 go 写业务开发的话是可以看到一些, 主要还是团队技术领导好控制下面的开发小弟,完形填空写代码

singleflight 和 errgroup 的使用

跟写 php 一样写 go 就行了,不要用写 java 的方式来写 go



我不太理解你们说的 java 那一套是哪一套 如果是指设计模式的话 那跟语言无关

依赖注入可以解决庞大的参数注入问题,必用了

#11 这个不完整的,后面还有很多

自己找开源项目去看。懒是学不到东西的。

升级到 1.22

Golang 第二语言指南: 学习路径、最佳实践以及工程化
https://nanmu.me/zh-cn/posts/2021/way-to-go/

希望能帮到你。

以前做 web 开发总结的一种简单的代码架构: https://github.com/EchoUtopia/blog/blob/master/project_layout_design.md

开源框架: https://github.com/go-eagle/eagle
微服务: https://github.com/go-microservice
或者任意你喜欢的框架之一,整个完整的项目出来

根据实际项目经验总结开源的基础开发框架,界面化的自动生成代码,有丰富工程实践,用来开发完整的 go 项目非常简单。

github 仓库: https://github.com/zhufuyi/sponge
丰富的使用示例: https://github.com/zhufuyi/sponge_examples
开发文档: https://go-sponge.com/

希望能帮到你。

我工作中总结的最佳实践,希望能帮到你
https://github.com/EchoGroot/kratos-examples

有中文版 https://read.douban.com/ebook/455919353/ 或者下载英文电子书文件,导入到微信读书里翻译

在Golang(Go语言)开发过程中,许多经验丰富的开发者总结了一系列最佳实践和经验之谈,供初学者和进阶者学习。以下是一些关键点:

  1. 代码结构与组织:按照功能或业务划分包(package),每个包职责明确。使用Go Modules管理依赖,确保版本一致性。
  2. 错误处理:通过返回值处理错误,使用errors包创建自定义错误信息。及时检查并处理函数调用中的错误。
  3. 日志记录:使用logrus、zap等日志库,记录详细的错误信息,便于排查问题。
  4. 并发编程:利用goroutine和channel实现并发,注意避免竞态条件和死锁,合理使用互斥锁(mutex)。
  5. 内存管理:及时释放资源,避免内存泄漏。使用sync.Pool重用对象,减少内存分配。
  6. 代码可读性:使用有意义的命名,编写清晰简洁的注释,将代码分解成多个函数。
  7. 性能测试与调优:使用testing和benchmark进行性能测试,针对关键路径优化代码。
  8. 代码审查:邀请其他开发者审查代码,使用golint、vet等工具发现潜在问题。
  9. 标准库与第三方库:充分利用标准库提供的功能,合理引入第三方库提高开发效率。

遵循这些最佳实践,可以帮助你编写高质量、易于维护的Go代码,提高开发效率和代码质量。

回到顶部