优秀的Go语言项目推荐
jopen
10年前
优秀的Go语言项目推荐
</div>
图一
有时候,我听见有新Go语言开发者说在找一些优秀的Go项目,来学习和贡献代码。通常我会推荐他们去读Go的源代码,你可以只了解你感兴趣的那部 分,并且可能包含有一些go的例程,这些都是最贴合Go语言特性的实例。在最近一段时间设计了一个可以发现Go项目质量的小工具。
我参加了Gopher Gala活动,它是一个48小时全球范围的黑客比赛。我们的团队设计了Go Report Card项目,它的设计目标是估算一个github上开源go项目的质量,这个工具使用了gofmt -s来判定基本格式, go vet来检查程序结构,gocyclo来检查代码圈复杂度,等其他代码,并根据这些工具的评分的平均值作为最终依据。
我的队友Shawn Smith和我在github上寻找关注度最高的go项目,并把结果存入mongo数据库。到现在我们评估了github上276个最流行的Go项目。目的是找到评分最高的。我选择那些超过100个Go源码文件,并以评分列表如下:
Rank | Name | Github Repo | Go Files | Score |
---|---|---|---|---|
1 | go-github | google/go-github | 107 | 97.1% |
2 | Cockroach | cockroachdb/cockroach | 204 | 89.5% |
3 | golang/net | golang/net | 243 | 87.6% |
4 | xGo | exercism/xgo | 142 | 86.2% |
5 | Kubernetes | GoogleCloudPlatform/kubernetes | 636 | 83.6% |
6 | syncthing | syncthing/syncthing | 146 | 83.0% |
7 | Packer | mitchellh/packer | 656 | 82.8% |
8 | Drone | drone/drone | 189 | 82.5% |
9 | etcd | coreos/etcd | 211 | 82.3% |
10 | Docker | docker/docker | 881 | 81.4% |
11 | GoLearn | sjwhitworth/golearn | 111 | 80.8% |
12 | NSQ | bitly/nsq | 116 | 80.8% |
13 | GoConvey | smartystreets/goconvey | 160 | 79.5% |
14 | golang/tools | golang/tools | 452 | 79.2% |
15 | Fleet | coreos/fleet | 151 | 79.1% |
16 | LimeText | limetext/lime | 150 | 79.0% |
17 | Flynn | flynn/flynn | 229 | 78.4% |
18 | godropbox | dropbox/godropbox | 157 | 78.1% |
19 | consul | hashicorp/consul | 182 | 77.4% |
20 | terraform | hashicorp/terraform | 454 | 74.2% |
这些大多都是极好的项目,如果你想找些小点的项目先开始,下面是一些源码文件少于100个的高分数项目:
Rank | Name | Github Repo | Go Files | Score |
---|---|---|---|---|
1 | httplogger | ernesto-jimenez/httplogger | 2 | 100.0% |
2 | Google Analytics Beacon Analytics | igrigorik/ga-beacon | 1 | 99.6% |
3 | s3cache | sourcegraph/s3cache | 1 | 99.4% |
4 | watchreadlisten | shawnps/watchreadlisten | 1 | 99.3% |
5 | go-loggly | segmentio/go-loggly | 1 | 99.3% |
6 | Exercism CLI | exercism/cli | 27 | 99.0% |
7 | TextQL | dinedal/textql | 1 | 98.7% |
8 | exercism/arkov | exercism/arkov | 9 | 97.2% |
9 | go-prompt | segmentio/go-prompt | 6 | 95.8% |
10 | SSCC | pblaszczyk/sscc | 14 | 94.64% |
11 | mewmew/playground | mewmew/playground | 96 | 91.9% |
12 | go-stats | segmentio/go-stats | 3 | 91.6% |
13 | localtunnel | progrium/localtunnel | 3 | 91.6% |
14 | freegeoip | fiorix/freegeoip | 9 | 91.6% |
15 | negroni | codegangsta/negroni | 11 | 90.9% |
16 | MAST | ikawaha/mast | 27 | 90.7% |
17 | martini | go-martini/martini | 16 | 90.6% |
18 | Bolt | boltdb/bolt | 42 | 90.4% |
19 | LLVM | mewlang/llvm | 21 | 90.4% |
20 | notify | rjeczalik/notify | 41 | 90.2% |
如果Go Report Card是靠谱的,那么这些项目都是高质量,真正的好项目。
想了解我们是如何测试这些项目质量的,你可以试试goreportcard。比如图一这个例子:
尽管结果是B,但是依然是一个很不错的项目,值得试试。
Herman是一个Go开发者,生活和工作都在亚洲,你可以邮件@ironzeb 他。
原文:Excellent Open Source Go Projects
来自:http://blog.lembed.com/excellent-open-source-go-projects/