用 Go 开发接口服务--准备项目所需的 Go 类包

栏目: Go · 发布时间: 5年前

内容简介:我们选择第三方类包,主要是为了方便快速开发,把主要精力放在业务流程上,为了避免走弯路,我们坚持选择稳定、符合 Go 语言哲学、开发团队活跃的类包作为优先选包原则。下面将罗列我们项目用到的第三方类包,并简单说明用途和特征。github.com/codegangsta/gin**gin 用途**:开发环境自动热编译部署工具,方便开发使用,只需启动一次,代码一旦有变动,gin 都会自动增量编译,省去每次修改代码都要手动重启的麻烦,需全局安装。

我们选择第三方类包,主要是为了方便快速开发,把主要精力放在业务流程上,为了避免走弯路,我们坚持选择稳定、符合 Go 语言哲学、开发团队活跃的类包作为优先选包原则。下面将罗列我们项目用到的第三方类包,并简单说明用途和特征。

github.com/codegangsta/gin 

**gin 用途**:开发环境自动热编译部署工具,方便开发使用,只需启动一次,代码一旦有变动,gin 都会自动增量编译,省去每次修改代码都要手动重启的麻烦,需全局安装。

github.com/golang/dep

**dep 用途**:Go 的依赖管理工具,类似 Java 界的 Maven,它可以让项目依赖某个版本的第三方库,把第三方库文件都集中下载在根目录 vendor 文件夹里,需全局安装。

gitub.com/urfave/negroni 

**negroni  用途**:非常 nice 非常地道的 Http 类包,它扩展了 Go 内置 `net/http` Handlers 处理器,它继承了 Go  web 开发所推崇的方式,我们整个项目都是基于 negroni 做项目骨架结构的。

github.com/go-sql-driver/mysql 

**go-sql-driver 用途**:MySQL 数据库驱动类包,连接 MySQL 数据库必备的库。

github.com/jmoiron/sqlx 

**sqlx 用途**:轻量的 SQL 操作类包,开发者出自于大猩猩团队成员的,特点是轻量,高性能,可扩展,它很巧妙地扩展了 Go 内置 database/sql 库所没有的东西,熟悉 database/sql 的同学,再用 sqlx 就如鱼得水。

github.com/elgris/sqrl  

**sqrl  用途**:生成动态 SQL 语句类包,它是 squirrel 的一个分支,着重去掉了线程同步的特点,优化了性能,像使用 ORM 一样生成 sql 语句和对应参数,对条件判断的数据访问,特别有用。它和 sqlx  是绝配。

github.com/unrolled/render 

**render 用途**:Web 响应输出 JSON、HTML、XML、TEXT 绝佳的类包,服务接口快速输出 JSON 必不可少的。

github.com/robfig/config 

**config 用途**:配置文件读写类包,项目配置一些可变的关键参数,需要写在程序外面,这时需要它读取配置文件的属性,传递给程序,也可以多个配置文件读取再写入合并文件,非常方面快捷的第三方库。

github.com/sirupsen/logrus

**logrus 用途**:功能完善的分级别日志类包,可以定制格式和属性,打印一些错误信息和调试信息。

github.com/disintegration/imaging 

**imaging  用途**:图片处理类包,它可以缩放,裁剪,反转,压缩图片,改变图片模式等,它让图片处理工作变得异常方便,省去写一堆复杂的算法程序。

以上列出的类包,都是项目业务用到的,除了 gin 和 dep,其他推荐使用 dep 方式安装。dep 的使用,也是很简单的,下面列出需要掌握的基本指令:

# 新建了项目文件夹之后,只需要执行以下指令,即可初始化 dep,让项目通过 dep 管理。
dep init
# 执行完毕,项目文件夹里多出了 Gopkg.lock Gopkg.toml vendor 两个文件和一个文件夹
# 以后项目依赖的第三方包,都会存在在 vendor 文件夹里。

# 查看 dep 的版本
dep version
# 依赖管理帮助
dep help ensure
# 添加一条依赖
dep ensure -add github.com/urfave/negroni 
# 这里 @= 参数指定的是 某个 tag
dep ensure -add github.com/urfave/negroni@=1.0.0
# 添加后一定记住执行 确保 同步
dep ensure -v
#  删除没有用到的 package
dep prune -v

这种 dep 安装方式和 go get 全局安装有点区别,全局安装文件都安装在 GOPATH 里的,所有的项目都共享使用,而 dep 方式安装的类包,都存放在自身项目 vendor 文件夹下,只有该项目才能用,与其他项目完全隔离,互不影响。本教程除了 dep gin 我们需要全局的安装之外,其他的包都建议使用了 dep 方式安装。

小结

读者如果觉得学习阶段,没有太多的项目,没有必要使用 dep 管理第三方类包,直接使用 go get 安装,也是可以的,本身 dep 也不是强制规定,使用 dep 安装只是一个友善建议,随着你的开发经验不断增长,参与的项目越来越多,特别是遇到开发多个项目的时候,或项目依赖第三方类包的某些版本的时候,你就发现 dep 安装方式的好处来了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

李开复、王咏刚 / 文化发展出版社 / 2017-5-10 / CNY 55.00

人工智能已经来了,它就在我们身边,几乎无处不在。 人工智能技术正在彻底改变人类的认知,重建人机相互协作的关系。史无前例的自动驾驶正在重构我们头脑中的出行地图和人类生活图景,今天的人工智能技术也正在翻译、写作、绘画等人文和艺术领域进行大胆的尝试。 我们真的知道什么是人工智能吗? 我们真的准备好与人工智能共同发展了吗? 我们该如何在心理上将人和机器摆在正确的位置? 我们该......一起来看看 《人工智能》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具