随着开发人员和大公司对Go语言的高度认可,导致公司开始寻找具有Go经验的工程师。这可能会给你带来很大的压力,让你决定要学什么才能成为一名优秀的工程师,这个是因人而异的,需要你计划什么时候学习其他的技术(即使是工程领域以外的知识)。
在这篇博文中,我将介绍一些重要的主题或github仓库,我认为有助于成为一名拥有更好的Go技术的工程师,包括:遵循良好的实践来编写代码,代码结构的概念(常用的设计模式),可伸缩代码和整洁的代码。
风格指南
关于这个话题我能列出不止一个仓库,我将推荐你阅读这3个链接。并为你的团队带来最符合实际情况的指导。记住使用官方文档作为基础,并从其他链接中补充有意义的内容。
- Effect Go:https://golang.org/doc/effective_go
- uber-go/guide:https://github.com/uber-go/guide
- Google Style Guide:https://google.github.io/styleguide/
- Go standards and style guidelines| Gitlab: https://docs.gitlab.com/ee/development/go_guide/
最佳实践
Francesc Campoy在OSCON 2015上就这个主题做了一次精彩的演讲,他在演讲中介绍了使用Go语言开发软件的最佳实践。
算法实现
-
The Algorithms/Go:https://github.com/TheAlgorithms/Go
这个存储库包含许多基于Go的流行算法和数据结构的。每种算法和数据结构都有自己的介绍,其中有相关的解释和链接供进一步阅读。
整洁的代码
Go社区提供的参考,涵盖了编写整洁代码的基础知识,并讨论了特定于Go的具体重构示例。
- Pungyeon/clean-go-article:https://github.com/Pungyeon/clean-go-article
整洁架构
著名作家Robert“Uncle Bob”Martin在他的书《Clean Architecture: A Craftsman’s Guide to Software Structure and Design》中介绍了一个包含一些要点的架构,如框架、数据库和接口的可测试性和独立性。
-
bxcodec/go-clean-arch:https://github.com/bxcodec/go-clean-arch
埃尔顿·米内托(Elton Minetto)就这个话题写了两篇精彩的博文: - Clean Archicture using Golang:https://eminetto.medium.com/clean-architecture-using-golang-b63587aa5e3f
- Clean Architecture, 2years later:https://eltonminetto.dev/en/post/2020-07-06-clean-architecture-2years-later/
Awesome Go
不能少了awesome-go这个项目:https://github.com/avelino/awesome-go
一个很棒的Go库和资源的集合。这个仓库包含各种框架、模板引擎、文章和帖子、文档、响应式和函数式编程以及更多的内容,这些内容将丰富您的资源,并可能帮助您为下一个项目选择技术堆栈。
项目指南
这是一个复杂的话题,没有一个标准可以完美地适用于你正在开发的内容,我建议你理解项目架构的概念(不仅仅是Go),并与你的团队一起理解什么对你有用,尽管有成千上万的书籍提供关于这个话题的知识,但我建议您动手编写代码并允许犯错误,这是最好的提升方式。阅读以下内容:
-
How to Write Go Code:https://golang.org/doc/code
现在您已经阅读前面的链接,我将推荐一个有争议的库,它不是“Golang标准项目布局”,但有一个项目结构,可以帮助开发一个新项目,了解适合你(和你的团队)以及不适合的并忽略。 - golang-standards/project-layout:https://github.com/golang-standards/project-layout