Awesome Go

4,770 阅读2分钟

Go 包

  • beego。算起来用了三年beego了。当初选择用它的理由很简单,文档是中文的,开发者是中国的,交流方便。优点就是用得人较多,框架集成度高,工具比较多。不过从1.6开始兼容性大大降低开始对它无感。现在越来越觉得beego框架设计的太重,Golang的设计特点就是轻便,把各个功能包组装起来用。比如配置它的config包,不用又不行,因为框架启动就会调用。最近大家都在推荐gin,有兴趣可以试试。

  • beego/logs。日志包一直在用beego内置的logs包。它有一个特点就是支持日志自动分割,可以按行数分割或者按日期分割。目前还没有发现支持此功能别的日志包,有的话大家给我推荐一下。

  • beego/orm。我的服务对数据库操作很少,orm只是简单用用。之前还用过gropxorm。Golang主要是用来做接口,对于数据库操作都比较简单,orm高级操作基本用不到。所以对我来说这些orm功能都差不多。。。

  • redigo。连Redis必备。功能很完善。

  • goquery。用来解析HTML。开发爬虫都会用到它。

  • goreq。一个HTTP请求包。之前会用它是因为它支持Gzip压缩。

  • viper。一个配置包。支持解析各种格式的配置文件,最让我惊喜的是它支持etcd。

  • gods。各种数据结构的Golang实现。这些代码生产环境没有直接用到过,不过自己写的时候可以借鉴一下。

  • ffjson。根据Golang的结构体自动生成MarshalJSON方法从而避免原生包通过反射编码引起的垃圾回收的问题。

  • godep。说实话Golang对包管理不太友好。有一个项目用了godep来做版本管理,每次都要执行好多命令真是麻烦。Golang新版内置包管理了,这个可以放弃使用了。

  • bitset。这个包已经在生产环境使用了,它是Bitmap的Golang实现。底层用uint64切片保存数据。性能是内置map的40倍。

  • jobrunner。一个Crontab包。beego内置的Crontab包之前有bug,只能找个新的。我关注这个的包的时候才100个Star,不过好在好用。

Go 工具

  • Cleaner Go。代码检测相关不错的文章。

    • 静态代码检测 staticcheck.exe $(glide.exe nv)
    • 无用代码检测 unused.exe $(glide.exe nv)
    • 代码简化建议 gosimple.exe $(glide.exe nv)
    • 原生检测 go vet
  • gojson。一个工具,可以通过Json格式的文本生成Golang结构体代码。


会持续更新。