優秀的Go語言項目推薦
優秀的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 | </tr> </tbody>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | go-github | google/go-github | 107 | 97.1% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | Cockroach | cockroachdb/cockroach | 204 | 89.5% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | golang/net | golang/net | 243 | 87.6% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | xGo | exercism/xgo | 142 | 86.2% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | Kubernetes | GoogleCloudPlatform/kubernetes | 636 | 83.6% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | syncthing | syncthing/syncthing | 146 | 83.0% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | Packer | mitchellh/packer | 656 | 82.8% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | Drone | drone/drone | 189 | 82.5% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | etcd | coreos/etcd | 211 | 82.3% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | Docker | docker/docker | 881 | 81.4% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | GoLearn | sjwhitworth/golearn | 111 | 80.8% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | NSQ | bitly/nsq | 116 | 80.8% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | GoConvey | smartystreets/goconvey | 160 | 79.5% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | golang/tools | golang/tools | 452 | 79.2% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | Fleet | coreos/fleet | 151 | 79.1% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | LimeText | limetext/lime | 150 | 79.0% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | Flynn | flynn/flynn | 229 | 78.4% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | godropbox | dropbox/godropbox | 157 | 78.1% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | consul | hashicorp/consul | 182 | 77.4% | </tr>||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | terraform | hashicorp/terraform | 454 | 74.2% | </tr> </tbody> </table> </div>
Rank | Name | Github Repo | Go Files | Score | </tr> </tbody>|||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | httplogger | ernesto-jimenez/httplogger | 2 | 100.0% | </tr>|||||||||||||||||||||||||
2 | Google Analytics Beacon Analytics | igrigorik/ga-beacon | 1 | 99.6% | </tr>|||||||||||||||||||||||||
3 | s3cache | sourcegraph/s3cache | 1 | 99.4% | </tr>|||||||||||||||||||||||||
4 | watchreadlisten | shawnps/watchreadlisten | 1 | 99.3% | </tr>|||||||||||||||||||||||||
5 | go-loggly | segmentio/go-loggly | 1 | 99.3% | </tr>|||||||||||||||||||||||||
6 | Exercism CLI | exercism/cli | 27 | 99.0% | </tr>|||||||||||||||||||||||||
7 | TextQL | dinedal/textql | 1 | 98.7% | </tr>|||||||||||||||||||||||||
8 | exercism/arkov | exercism/arkov | 9 | 97.2% | </tr>|||||||||||||||||||||||||
9 | go-prompt | segmentio/go-prompt | 6 | 95.8% | </tr>|||||||||||||||||||||||||
10 | SSCC | pblaszczyk/sscc | 14 | 94.64% | </tr>|||||||||||||||||||||||||
11 | mewmew/playground | mewmew/playground | 96 | 91.9% | </tr>|||||||||||||||||||||||||
12 | go-stats | segmentio/go-stats | 3 | 91.6% | </tr>|||||||||||||||||||||||||
13 | localtunnel | progrium/localtunnel | 3 | 91.6% | </tr>|||||||||||||||||||||||||
14 | freegeoip | fiorix/freegeoip | 9 | 91.6% | </tr>|||||||||||||||||||||||||
15 | negroni | codegangsta/negroni | 11 | 90.9% | </tr>|||||||||||||||||||||||||
16 | MAST | ikawaha/mast | 27 | 90.7% | </tr>|||||||||||||||||||||||||
17 | martini | go-martini/martini | 16 | 90.6% | </tr>|||||||||||||||||||||||||
18 | Bolt | boltdb/bolt | 42 | 90.4% | </tr>|||||||||||||||||||||||||
19 | LLVM | mewlang/llvm | 21 | 90.4% | </tr>|||||||||||||||||||||||||
20 | notify | rjeczalik/notify | 41 | 90.2% | </tr> </tbody> </table> </div>