7 个主题(以及相应的 GitHub 代码库)助你成为更优秀的 Go 开发者
算法 - 前进
包裹:
Clean Go 代码
清洁拱
太棒了!
标准 Go 项目布局
由于 Go 语言被开发者和大公司广泛采用,这导致公司开始寻找具有 Go 语言经验的工程师。
这可能会给想成为更优秀工程师的人带来很大的压力,因为学习内容的选择非常个人化,需要规划学习其他科目(甚至是工程领域以外的科目)的内容和时间。
在这篇博文中,我将介绍一些我认为对于成为一名拥有更扎实的 Go 语言知识、遵循良好的代码编写实践、代码结构概念(通常使用设计模式)、可扩展代码和整洁代码的工程师来说非常重要的主题(附带代码库和链接)。
风格指南
关于这个主题,我无法只列出一个链接(代码库),我建议您阅读这三个链接,并将最符合团队实际情况的内容应用到日常工作中——请记住以官方语言文档为基础,并添加其他链接中有意义的内容。
有效
该存储库包含Uber Go 风格指南,其中记录了 Uber 在 Go 代码中使用的模式和约定。
风格指南
请参阅Uber Go 风格指南以获取风格指南。
翻译
我们注意到 Go 社区对本指南有以下几种翻译。
如果您有翻译,欢迎提交 PR 将其添加到列表中。
谷歌风格指南
Go 标准和风格指南 | GitLab
最佳实践
Francesc Campoy在 2015 年 OSCON 大会上就此主题发表了精彩的演讲,他在演讲中介绍了使用 Go 语言开发软件的最佳实践。
幻灯片
Go 的十二项最佳实践
已实现的算法
面向初学者,使用 Go 语言实现的算法和数据结构,遵循最佳实践。
该仓库包含许多常用算法和数据结构的 Go 语言示例。
每个算法和数据结构都有其独立的 README 文件,其中包含相关的解释和进一步阅读的链接。
清洁代码
这是一本面向 Go 社区的参考书,涵盖了编写简洁代码的基础知识,并讨论了 Go 特有的具体重构示例。
这是一本面向 Go 社区的参考书,涵盖了编写简洁代码的基础知识,并讨论了 Go 特有的具体重构示例。
Clean Go 代码
前言:为什么要编写简洁的代码?
本文档是面向 Go 社区的参考资料,旨在帮助开发者编写更简洁的代码。无论您是在进行个人项目还是在大型团队中工作,编写简洁的代码都是一项重要的技能。建立良好的代码编写范式和一致且易于理解的标准,可以帮助开发者避免浪费大量时间去理解自己(或他人)的代码。
我们不读代码,我们解码代码——彼得·西贝尔
作为开发者,我们有时会为了图方便而编写代码,忽略最佳实践;这会增加代码审查和测试的难度。从某种意义上说,我们是在编码——这样做反而让其他人更难解读我们的工作。但我们希望代码易于使用、可读且易于维护。而这需要……
清洁建筑
著名作家罗伯特·“鲍勃大叔”·马丁在其著作《整洁架构:软件结构与设计的工匠指南》中提出了一种架构,其中包含一些重要的观点,例如可测试性以及框架、数据库和接口的独立性。
Go(Golang)整洁架构基于阅读鲍勃大叔的《整洁架构》
清洁拱
更新日志
作者注
您可能会注意到它与之前版本中的结构有所不同。我建议您探索每个版本的分支,选择您喜欢的结构……
埃尔顿·米内托就此主题撰写了两篇非常优秀的博文:
- 使用 Golang 的 Clean Architecture
- 清洁建筑,两年后
太棒了!
我不能不提 awesome-go 项目(我于 2014 年启动了这个项目,如今有很多贡献者帮助我维护它)。
太棒了!


我们使用Golang Bridge社区 Slack 进行即时沟通,请点击此处表格加入。

赞助:
特别感谢
Awesome Go 没有月费,但我们有员工辛勤工作来维持它的运营。有了筹集的资金,我们就能回报每一位参与者的付出!我们的计费和分配方式对整个社区公开透明,您可以随时查看。想成为本项目支持者吗?点击这里。
一份精选的优秀 Go 框架、库和软件列表。灵感来自awesome-python。
贡献:
…
这里汇集了各种优秀的 Go 语言库和资源。该仓库包含丰富的框架、模板引擎、文章和帖子、文档、响应式和函数式编程等内容,能够提升你的编程能力,并可能帮助你为下一个项目选择合适的技术栈。
项目指南
这是一个复杂的主题,没有一个标准能完美适用于你正在开发的项目。我建议你理解项目架构的概念(不仅仅是 Go),并与你的团队一起找出适合你们的方法。尽管有成千上万本书可以让你了解这个主题,但我建议你亲自动手编写代码,允许自己犯错,这是进步的最佳途径。
在阅读其他任何内容之前,请先阅读此内容。
如何编写 Go 代码
既然你已经阅读了前面的链接,我将推荐一个名字就颇具争议的仓库,它不是“Golang 标准项目布局”,但它确实提供了一种项目结构,可以帮助开发新项目——了解哪些对你(和你的团队)有意义,哪些没有意义,那就忽略它。
标准 Go 项目布局
译文:
概述
这是一个 Go 应用项目的基本布局。请注意,它的内容比较基础,因为它只关注整体布局,而不涉及内部细节。此外,它也非常概括,没有深入探讨如何进一步构建项目结构。例如,它没有涵盖类似 Clean Architecture 那样的项目结构。
这NOT an official standard defined by the core Go dev team是 Go 生态系统中常见的历史和新兴项目布局模式集。其中一些模式比其他模式更流行。它还包含一些小的改进以及一些支持……
请阅读我为什么说这个项目有争议。
致谢
非常感谢您阅读这篇文章,希望您觉得这些代码库和我一样有用,并能帮助您成为更优秀的 Go 开发者。欢迎提出任何建议,如果您喜欢我的作品,可以在Twitter上关注我。
文章来源:https://dev.to/avelino/7-subjects-and-github-repositories-to-become-a-better-go-developer-3kb3