发布于 2016-01-18 02:01:47 | 396 次阅读 | 评论: 0 | 来源: 网友投递
Beego Go应用框架
beego是一个开源的用Go开发的应用框架,思路来自于tornado,路由设计来源于sinatra,
距离上一次发布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