Golang 作为一门还在快速成长的编程语言,想要与时俱进,还得多看看这几个开源项目。
听说你想学习 Go 语言,那我就来总结一下:那些目前我所了解的优质 Golang 开源项目。

学习 Go 语言,可别忘记了 Go 本身是一门可以轻松构建简单,可靠和高效软件的开源编程语言。
官网:The Go Programming Language
GitHub 地址:https://github.com/golang/go
Stars:103k
推荐理由:
针对新手,如果想学习 Go 语言,必不可少的需要下载 Go 安装包
针对大佬,如果想研究源码,当然也需要来这下载源代码
官网:A curated list of awesome Go frameworks, libraries and software - Awesome Go / Golang
Github地址:https://github.com/avelino/awesome-go
Stars:85.5k
推荐理由:互联网搬运工的工作,还得看 Awesome 系列,懂得都懂!
An awesome list is a list of awesome things curated by the community.
本开源项目涵盖众多项目,包括但不限于数据库、游戏开发、区块链、Web 开发框架、身份认证、持续集成、自动化构建等方面。
项目多是优点也是缺点,如果可以通过在实践中选择学习和使用效果可能更好。

学习完 Go 的基础语法,当然作为入门者肯定要学习一下算法与数据结构,这里也推荐两个比较合适的开源项目。

GitHub 地址:https://github.com/TheAlgorithms/Go
Stars:10.5k
推荐理由:一个是大名鼎鼎的 The Algorithms, 这个仓库由众多大佬参与的用各种语言实现经典的算法:比如:二分搜索、快速排序、动态规划和常见数据结构等,像其标语所说的:目前 Github 最大的开源算法库。本人之前写的几篇数据结构的文章都得从这里来看看,同样是链表,学习我写的和大佬实现的有何差异,一旦发现有所考虑不全,立马向大佬学习。目前用 go 已经实现了的算法可以点此处。

Github 地址:https://github.com/halfrost/LeetCode-Go
Stars:26.2k
推荐理由:如果想从事 Go 语言开发,一个无可避免的地方就是需要算法面试,那你一定不能错过这个开源项目。halfrost 大佬花了一年用 Go 语言刷题,最后总结出这套 1000 多道题的 LeetCode 题解与心得,并将此题解制作成一本开源电子书,一经推出,得到众多大佬的推荐。作者表示,书中所有的代码题解都是 beats 100%,可谓是一本制作精良,Go 刷题必备居家旅行之好书。可以点此处在线阅读。

官网地址:Gin Web Framework
Stars:61.8k
推荐理由:一款盛名远扬的 Go Web 开发框架。功能强大、快速灵活、性能高。笔者还在学习中,所以也道不出什么所以然。当时学它总没错。

官网:Fiber
Github 地址:https://github.com/gofiber/fiber
Stars:21.4k
推荐理由:一个简单快速的 Go Web 框架。 Fiber 专注于极致性能和低内存占用。它的灵感来自流行的 Express JS 框架。

官网:go-zero
Github 地址:https://github.com/zeromicro/go-zero
Stars:19.8k
推荐理由:一款云原生微服务 RPC 框架,集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。

官网:Iris
Github 地址:https://github.com/kataras/iris
Stars:22.7k
推荐理由:据官网介绍,Iris 是最快的 HTTP/2 Go Web 框架,简单易学。跨平台、具有强大的功能集、能够有效构建高性能 Web 应用程序和可移植性 API 。

官网:Homepage - beego: simple & powerful Go app framework
Stars:28.7k
推荐理由:国内一群大佬开发,文档全原生中文、上手简单。

官方地址:Echo - High performance, minimalist Go web framework
Github 地址:https://github.com/labstack/echo
Stars:23.1k
推荐理由:众多 Go Web 框架的一个,根据官网介绍,它有着高性能、可扩展性、极简的特点。
Github 地址:GitHub - golang-standards/project-layout: Standard Go Project Layout
Stars:33.7k
推荐理由:本开源项目提供了一个良好的项目组织架构,提供给 Go 开发者一个良好的应用程序项目的基本布局。它不是核心 Go 开发团队定义的官方标准;然而,它是 Go 生态系统中一组常见的老项目和新项目的布局模式。随着项目的增长,保持代码结构良好非常重要,否则你最终会得到一个凌乱的代码,这其中就包含大量隐藏的依赖项和全局状态。
总之,参与人员越多,项目结构越重要。

官网:GORM - The fantastic ORM library for Golang, aims to be developer friendly.
Github 地址:GitHub - go-gorm/gorm: The fantastic ORM library for Golang, aims to be developer friendly
Stars:29.2k
推荐理由: 一款 Go 语言的 ORM 库,具有灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus。记得有一个前辈跟我说过,为了简化操作开源使用 ORM,如果需要做到性能最优,还是得靠 DBA 写一些高效的 SQL 语句。
没有一项工具是可以一劳永逸的,但是我们学习还是值得的。不知其所以,怎么知其不可以。

官网:Traefik Labs: Makes Networking Boring
Github 地址:GitHub - traefik/traefik: The Cloud Native Application Proxy
Stars:39.2k
推荐理由:一款开源的反向代理与负载均衡工具。它最大的优点是能够与常见的微服务系统直接整合,可以实现自动化动态配置。为了让系统好好上线,咱可得好好学吖。

Github 地址:https://github.com/v2fly/v2ray-core
Stars:17.5k
推荐理由: 无需多介绍,用得多的人应该都听过 V2Ray 客户端。

官网:Rclone
Github 地址:https://github.com/rclone/rclone
Stars:34.1k
推荐理由:一个集成了各大云平台供应商云存储的接口的命令行程序,有效用于管理云存储上的文件,包括:Google Drive, S3, Dropbox, Backblaze B2, One Drive 等等。

官网:Gitea
Github 地址:https://github.com/go-gitea/gitea
Stars:31.6k
推荐理由:一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写

官网:GitHub CLI | Take GitHub to the command line
Github 地址:https://github.com/cli/cli
Stars:29.4k
推荐理由:Github 官方用于构建命令行程序的库,实现了命令行与 GitHub 进行无缝的协同工作。

Github 地址:https://github.com/Dreamacro/clash
Stars:29.9k
推荐理由:Clash 是一个使用 Go 语言编写,基于规则的跨平台代理软件核心程序,支持 SS / VMess 协议,正在使用 Windows 版本。

官网:Cobra. Dev
Github 地址:https://github.com/spf13/cobra
Stars:28k
推荐理由:也是一个优异的 CLI 框架,同样提供了简单的接口来创建命令行程序,众多优秀的项目中都使用到了 Cobra,如 Kubernetes、Hugo 和 Github CLI 等。

官网:The Open Source Data Science Masters by datasciencemasters
GitHub 地址:https://github.com/datasciencemasters/go
Stars:21.6k
推荐理由:如果你对数据科学领域感兴趣,本开源项目带你学习数据科学的开源课程。

Github 地址:https://github.com/practical-tutorials/project-based-learning#go
Stars:74.7k
推荐理由:这个仓库汇集了众多编程语言从零开始学的优质博客或者教程。作者也选取了几个优质的 Go 教程供大家学习,如果你也想学习除了 Go 语言之外的语言,可以看看这个仓库。
Go 的开源优秀项目太多了。感兴趣的读者可以在 Github 的简单的一个搜索语法进行快速搜索,例如通过在搜索框中输入: go stars:>=20000
就能在全站中搜索标星超过 20 K 的项目,得获取到如下界面:

可以看到目前的搜索结果大概有 51 个仓库,本文自然没有全部列出。
比如还有一些名声大噪的项目如 Kubernetes、Docker、Hugo、CockroachDB 、etcd 以及以太坊官方 Go 实现 Ethereum 等都没有一一介绍了:一是篇幅有效,二是这些项目无需过多介绍,大家都会自行了解和学习。
开源项目千千万,对于我这种菜鸟来说,也很难有时间能把所有的项目摸透(大佬绕开),但是如果能吃透一个开源项目,甚至成为一个开源项目的贡献者,我想这条路一定是艰难但且有意义的。
Go 语言爱好者的你,赶紧挑一个本文中用得上的项目学起来用起来。
下期我将旁边一些 Go 优质的开源图书,敬请期待!
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
我使用Jekyll运行博客,并认为我会解决RedcarpetMarkdown解释器,因为它是developedandusedbyGitHub.好吧,我只是碰巧遇到了一个错误,去检查问题,然后foundthis.Maintainersays,"Asyouprobablyhavenoticed(harharharhar)Idon'thavetimetomaintainRedcarpetanymore.It'snotapriorityforme(IfindMarkdownthoroughlyboring)andit'snotapriorityforGitHub,becausewenolong
我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com
我有一个使用Jekyll托管在GitHub上的静态网站。问题是,我真的不需要master分支,因为存储库唯一包含的是网站。这样我就必须gitcheckoutgh-pages,然后gitmergemaster,然后gitpushorigingh-pages。有什么简单的方法可以摆脱gh-pages分支并直接从master推送? 最佳答案 Theproblemis,Idon'treallyneedthemasterbranch,astheonlythingtherepositorycontainsisthewebsite.Isthere
提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信
我每次打开终端时都会收到这个错误:警告:PATH设置为RVMruby但未设置GEM_HOME和/或GEM_PATH,请参阅:https://github.com/wayneeseguin/rvm/issues/3212这是在我最近安装zsh(oh-my-zsh)后开始发生的我不知道如何设置GEM_HOME和/或GEM_PATH的路径。 最佳答案 我也面临同样的问题,更改.zshrc中的以下行,exportPATH="/usr/local/heroku/bin:.........."到exportPATH="$PATH:/usr/
当我尝试创建一个github问题时,它给出消息未找到回复。以及如何发送身份验证header。因为创建问题需要用户登录或验证curl-XPOST-i-d'{"title":"my-new-repo","body":"mynewissuedescription"}'https://api.github.com/repos/barterli/barter.li/issuesHTTP/1.1404NotFoundServer:GitHub.comDate:Wed,19Feb201407:11:33GMTContent-Type:application/json;charset=utf-8Sta
NewRelic向我展示了应用服务器中超过80%的执行时间发生在“MiddlewareActiveRecord::QueryCache#call”中这里是相关测试代码的要点(尽管我在其他API端点上看到了类似的结果)。Gist我正在AWSElasticBeanstalk上的t2.medium实例和t2.smallPostgresRDSDB上运行应用程序服务器,max_connections设置为100。我正在通过loader.io对此进行测试,对100个用户进行测试使用维护客户端负载设置(这意味着每分钟大约6000个请求)。有谁知道为什么QueryCache花费这么多时间?
我正在尝试从使用RubyonRails的散列创建http参数,我尝试使用URI.encode_www_form(params),但这没有正确生成参数。下面是我的哈希值params['Name'.to_sym]='NiaKun'params['AddressLine1'.to_sym]='AddressOne'params['City'.to_sym]='CityName'这个方法把空格转成+,我要的是把空格转成%20我收到"Name=Nia+Kun&AddressLine1=Address+One&City=City+Name"但我需要将此空格转换为%20
我想通过github操作在gem上运行rspec(称之为priv_gem_a)。priv_gem_a依赖于私有(private)存储库中的另一个gem(称之为priv_gem_b)。但是,由于权限无效,我无法捆绑安装priv_gem_b。错误:Fetchinggemmetadatafromhttps://rubygems.org/..........Fetchinggit@github.com:myorg/priv_gem_bHostkeyverificationfailed.fatal:Couldnotreadfromremoterepository.Pleasemakesureyo