内容简介:我们选择第三方类包,主要是为了方便快速开发,把主要精力放在业务流程上,为了避免走弯路,我们坚持选择稳定、符合 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 安装方式的好处来了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- php – Laravel:一般错误:1615准备好的声明需要重新准备
- 详解Openstack环境准备
- 深度有趣 | 02 准备工作
- 2019 面试准备 - 图片
- 如何准备JS迁移
- GraphEngine的开发环境准备
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB HSV 转换
RGB HSV 互转工具
RGB CMYK 转换工具
RGB CMYK 互转工具