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

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

内容简介:我们选择第三方类包,主要是为了方便快速开发,把主要精力放在业务流程上,为了避免走弯路,我们坚持选择稳定、符合 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 安装方式的好处来了。


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

查看所有标签

猜你喜欢:

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

密码学概论(中文版)

密码学概论(中文版)

wade trappe、lawrence C.washington / 特拉普 / 人民邮电出版社 / 2004-6-1 / 38.00

本书全面讲解了密码学基本知识以及相关的基础数学理论,介绍了椭圆曲线、AES和量子密码体制等密码学前沿知识,详细地阐述了数字签名、数字现金等应用问题。另外,书中每章均给出了相应的习题,在附录中给出了相关Mathematica、Maple和 MATLAB实例。 本书可供高等院校就用数学、通信和计算机等专业用作密码学、通信安全和网络安全等课程的教材或参考书,也可供信息安全系统设计开发人......一起来看看 《密码学概论(中文版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具