beego 1.6.0 版本发布,Go 应用框架
距离上一次发布1.5版本已经半年了,这半年里面我们改进了很多,其实中间又想要发布一个小版本的,但是后来还是想想就改的彻底一点,所以这次改动相当多,中间又因为一些兼容性的问题所以特地写了一个工具bee fix,可以让大家平滑的升级beego应用到最新版本。大家如果有任何问题可以去issue提问题,我们会尽快的回复大家。今年我们计划发布四个版本,三个月发布一个大版本,然后遇到一些issue我们会发布一些小版本。目前我们核心开发组已经有10个人。今年我们会努力做好beego这个框架以及周边的工具,教程,模块,应用等。希望给大家带来更好的体验。
新功能:
-
文件log支持rotate支持类似xx.2013-01-01.2.log这样的输出 #1265
-
context.response 支持了原生的Flush,Hijack,CloseNotify
-
ORM支持Distinct操作 #1276
-
新增加模板函数map_get #1305
-
ORM支持tidb引擎 #1366
-
httplib请求参数支持[]string #1308
-
ORM querySeter添加GroupBy方法 #1345
-
Session的MySQL引擎支持自定义表名 #1348
-
log的file引擎性能提升30%,同时支持自定义创建的文件权限 #1560
-
session支持通过query获取 #1507
-
Cache模块支持多个Cache对象,之前N调用ewCache获取的是同一个Cache,现在会初始化不同的Cache对象。
-
validation支持自定义验证函数
bugfix:
-
context里面bind函数如果参数为空crash #1245
-
ORM中manytomany获取reverse的时候出错。#671
-
http: multiple response.WriteHeader calls #1329
-
ParseForm解析日期使用当前的timezone #1343
-
log引擎里面Smtp发送邮件无法认证
-
修复路由规则的一些issue: /topic/:id/?:auth, /topic/:id/?:auth:int #1349
-
修复注释文档解析的时候nil引起crash #1367
-
static目录下的index.html无法读取
-
dbBase.Update失败不返回err #1384
-
validation里面设置的Required只对int有效,int64无效
-
ORM创建外键是string类型的主键时创建varchar(0)的字符问题 #1379
-
graceful同时开启http和https的时候出错 #1414
-
ListenTCP4开启之后如果httpaddr为空还是监控TCP6
-
migration不支持postgres #1434
-
ORM text、bool等默认值问题导致创建表出错
-
graceful导致panic问题 negative WaitGroup counter
优化:
-
example 移到了 samples
-
所有代码符合golint规范
-
重写路由树底层,性能提升三倍左右
-
每次请求的context采用sync.Pool复用,内存和性能提升
-
模板编译优化速度,按需编译 #1298
-
优化了beego的配置管理,采用统一的BConfig,更易读易管理
-
优化了beego的整体结构代码,使得代码更易读维护
-
所有初始化的信息统一到AddAPPStartHook函数中去,易于管理
-
移除了middleware,之后全部采用plugins来管理插件
-
重构Error处理,使得Error更加易懂
升级指南:
1. go get -u github.com/beego/bee
2. 进入项目目录
3. bee fix