Golang Go语言中有什么代码质量高的开源项目值得学习和推荐吗?
Golang Go语言中有什么代码质量高的开源项目值得学习和推荐吗?
推荐 grafana 家的 tempo 和 loki
里面有共识算法,有 wal ,有数据处理,有 parquet ,还有一些很不错的设计模式
docker 算吗?
基于泛型&代码生成&拦截器的依赖注入框架 :-)
https://github.com/go-kod/kod
go 编译器
nsq ,很有意思的一个消息队列
tailscale ,gvisor ,go 标准库。。。感觉都挺好。
项目有点大,不太适合小白学习 本地部署调试
rclone 纯新手看的话有点难度
gin 和 gorm 就挺好的呀。
我学 go 的时候就是看的这个练手,代码味还是挺正的
filebrowser ?
选你感兴趣的、有一定人气的项目就行,参与社区,只有交流才能使你提高,除了技术还有 reputation 。
have fun : )
可以看看我 star 的仓库,语言选 Go ,都是非常经典的开源项目
https://github.com/gowk?tab=stars
etcd
https://github.com/lonng/nano web 服务的模板
https://github.com/LazyFury/yoomall 这个是我照猫画虎搭的,我感觉更清晰一点,但也简单很多
可以看下这个项目: https://github.com/KusionStack/karpor
看 go runtime 和 go 标准库的源码能够快速提升 Go 语言的基础理解,而且能学习一套可能是 Go 团队比较中意的实践代码风格(其实很像 C )。
《 Go 语言设计与实现》 - https://draveness.me/golang/
golang-note - https://github.com/cch123/golang-notes/tree/master
这是 Go 语言设计实现源码分析的系列文章可以看下,注意下文章里对应的 Go 版本可能比较老了。不过关于 Go 的 GC 这两个项目没有讲得很全面,要看的话估计还得再找找。
Go 语言是自举的,所以通过学习 Go 语言本身的源码确实提升很快。
K8S 的源码我个人感觉其实风格不是很 Go ,即便用 Java 重新写一套感觉也没啥违和感。我自己最近在看 VictoriaMetrics , 作者应该算是 Go 性能大师了,可以学到很多内存管理、并发控制、IO 优化的内容,里面也包括一些他自己写的轮子:fastcache 、uint64set 等等,都是挺值得琢磨的,欢迎讨论。
看完 VM 以及作者的其他项目(如 fasthttp )我可能会去看 NATS ,因为作为 Go 实现的消息队列它已经实现了很多对标 Kafka 的功能,所以也看看设计,以及思考性能上有没有优化空间。
gorm 恐怕真的算了吧。
在Golang(Go语言)生态中,有许多高质量的开源项目值得学习和推荐。以下是一些值得关注的项目:
- Kubernetes:这是一个容器编排平台,用于自动化应用程序的部署、扩展和管理。Kubernetes项目对Golang的依赖非常重,是学习云原生和容器化技术的绝佳示例。
- Docker:作为开源的应用容器引擎,Docker让开发者可以打包应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。Docker的实现也大量使用了Golang。
- Prometheus:这是一个开源的系统监控和警报工具包,使用Golang编写,具有灵活的数据模型、强大的查询语言,并且不依赖分布式存储。
- Gin:这是一个高性能的HTTP Web框架,用于快速开发API。Gin提供了丰富的中间件支持和易于路由定义的功能,非常适合构建轻量级、高性能的Web应用。
- Hugo:这是一个用Go编写的静态网站生成器,速度极快且易于使用。它允许用户通过简单的模板和Markdown文件来创建网站,非常适合个人博客或企业网站。
- GORM:这是一个强大的ORM库,用于Go语言,支持多种数据库如MySQL、PostgreSQL等。GORM的设计哲学是简洁和易用,通过简单的API即可实现复杂的数据库操作。
这些项目不仅代码质量高,而且社区活跃、文档完善,是学习Golang和了解现代软件开发实践的绝佳资源。