发布于 2026-01-05 0 阅读
0

7 个主题(以及相应的 GitHub 代码库)助你成为更优秀的 Go 开发者:算法 - Go 包:整洁的 Go 代码 go-clean-arch 优秀的 Go 标准 Go 项目布局

7 个主题(以及相应的 GitHub 代码库)助你成为更优秀的 Go 开发者

算法 - 前进

包裹:

Clean Go 代码

清洁拱

太棒了!

标准 Go 项目布局

由于 Go 语言被开发者和大公司广泛采用,这导致公司开始寻找具有 Go 语言经验的工程师。

这可能会给想成为更优秀工程师的人带来很大的压力,因为学习内容的选择非常个人化,需要规划学习其他科目(甚至是工程领域以外的科目)的内容和时间。

在这篇博文中,我将介绍一些我认为对于成为一名拥有更扎实的 Go 语言知识、遵循良好的代码编写实践、代码结构概念(通常使用设计模式)、可扩展代码和整洁代码的工程师来说非常重要的主题(附带代码库和链接)。

风格指南

关于这个主题,我无法只列出一个链接(代码库),我建议您阅读这三个链接,并将最符合团队实际情况的内容应用到日常工作中——请记住以官方语言文档为基础,并添加其他链接中有意义的内容。

有效

GitHub 标志 指南

Uber Go 风格指南。

该存储库包含Uber Go 风格指南,其中记录了 Uber 在 Go 代码中使用的模式和约定。

风格指南

请参阅Uber Go 风格指南以获取风格指南。

翻译

我们注意到 Go 社区对本指南有以下几种翻译。

如果您有翻译,欢迎提交 PR 将其添加到列表中。




谷歌风格指南

Go 标准和风格指南 | GitLab

最佳实践

Francesc Campoy在 2015 年 OSCON 大会上就此主题发表了精彩的演讲,他在演讲中介绍了使用 Go 语言开发软件的最佳实践。

幻灯片

Go 的十二项最佳实践

已实现的算法

GitHub 标志 算法/ Go

面向初学者,使用 Go 语言实现的算法和数据结构,遵循最佳实践。

算法 - 前进

Gitpod Ready-to-Code  持续集成 代码发现 godocmd   更新目录_md Discord聊天 

用 Go 语言实现的算法(用于教育)

该存储库是一系列用 Go 语言实现的各种算法的开源实现,并根据MIT 许可证获得许可。

捐款前请阅读我们的捐款指南。

算法列表

包裹:

ahocorasick
功能:
  1. Advanced:执行高级 Aho-Corasick 算法的高级函数。查找并打印每种模式的出现次数。
  2. AhoCorasick:AhoCorasick 函数执行基本的 Aho-Corasick 算法。查找并打印每个模式的出现次数。
  3. ArrayUnionArrayUnion 将两个整数数组合并成一个数组。
  4. BoolArrayCapUp:BoolArrayCapUp 动态地将布尔数组的大小增加 1。
  5. BuildAc:构建 Aho Corasick 自动机的函数。
  6. BuildExtendedAc: BuildExtendedAc 函数用于构建扩展的 Aho Corasick 自动机。
  7. ComputeAlphabet: ComputeAlphabet 函数,返回给定模式中所有可能字符的字符串。
  8. ConstructTrie: ConstructTrie 函数,用于构造 Trie 作为一组反转和修剪字符串的自动机。

该仓库包含许多常用算法和数据结构的 Go 语言示例。

每个算法和数据结构都有其独立的 README 文件,其中包含相关的解释和进一步阅读的链接。

清洁代码

这是一本面向 Go 社区的参考书,涵盖了编写简洁代码的基础知识,并讨论了 Go 特有的具体重构示例。

GitHub 标志 蓬延/清洁文章

这是一本面向 Go 社区的参考书,涵盖了编写简洁代码的基础知识,并讨论了 Go 特有的具体重构示例。

Clean Go 代码

前言:为什么要编写简洁的代码?

本文档是面向 Go 社区的参考资料,旨在帮助开发者编写更简洁的代码。无论您是在进行个人项目还是在大型团队中工作,编写简洁的代码都是一项重要的技能。建立良好的代码编写范式和一致且易于理解的标准,可以帮助开发者避免浪费大量时间去理解自己(或他人)的代码。

我们不读代码,我们解码代码——彼得·西贝尔

作为开发者,我们有时会为了图方便而编写代码,忽略最佳实践;这会增加代码审查和测试的难度。从某种意义上说,我们是在编码——这样做反而让其他人更难解读我们的工作。但我们希望代码易于使用、可读且易于维护。而这需要……

清洁建筑

著名作家罗伯特·“鲍勃大叔”·马丁在其著作《整洁架构:软件结构与设计的工匠指南》中提出了一种架构,其中包含一些重要的观点,例如可测试性以及框架、数据库和接口的独立性。

GitHub 标志 bxcodec / go-clean-arch

Go(Golang)整洁架构基于阅读鲍勃大叔的《整洁架构》

清洁拱

更新日志

作者注

您可能会注意到它与之前版本中的结构有所不同。我建议您探索每个版本的分支,选择您喜欢的结构……

埃尔顿·米内托就此主题撰写了两篇非常优秀的博文:

  1. 使用 Golang 的 Clean Architecture
  2. 清洁建筑,两年后

太棒了!

我不能不提 awesome-go 项目(我于 2014 年启动了这个项目,如今有很多贡献者帮助我维护它)。

GitHub 标志 avelino / awesome-go

精选的优秀 Go 框架、库和软件列表

太棒了!

太棒了!

构建状态 惊人的 Slack 小部件 Netlify状态 精彩曲目列表 最后一次提交

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

awesome-go - 精选的优秀 Go 框架、库和软件列表 | Product Hunt

赞助:

特别感谢

Awesome Go 没有月费,但我们有员工辛勤工作来维持它的运营。有了筹集的资金,我们就能回报每一位参与者的付出!我们的计费和分配方式对整个社区公开透明,您可以随时查看。想成为本项目支持者吗?点击这里

一份精选的优秀 Go 框架、库和软件列表。灵感来自awesome-python

贡献:

这里汇集了各种优秀的 Go 语言库和资源。该仓库包含丰富的框架、模板引擎、文章和帖子、文档、响应式和函数式编程等内容,能够提升你的编程能力,并可能帮助你为下一个项目选择合适的技术栈。

项目指南

这是一个复杂的主题,没有一个标准能完美适用于你正在开发的项目。我建议你理解项目架构的概念(不仅仅是 Go),并与你的团队一起找出适合你们的方法。尽管有成千上万本书可以让你了解这个主题,但我建议你亲自动手编写代码,允许自己犯错,这是进步的最佳途径。

在阅读其他任何内容之前,请先阅读此内容。

如何编写 Go 代码

既然你已经阅读了前面的链接,我将推荐一个名字就颇具争议的仓库,它不是“Golang 标准项目布局”,但它确实提供了一种项目结构,可以帮助开发新项目——了解哪些对你(和你的团队)有意义,哪些没有意义,那就忽略它。

GitHub 标志 golang-standards /项目布局

标准 Go 项目布局

标准 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