• v1.8.0 (2019-07-15)
    • 新功能改进
    • Bug Fix
    • 注意事项

    v1.8.0 (2019-07-15)

    新功能改进

    1. 框架目前 69 个开发模块(不包括内部模块),原生代码 65302 行(不包含第三包依赖包),单元测试覆盖率达到77%
    2. 新增gerror错误处理模块:https://goframe.org/errors/gerror/index
    3. 改进gcharset字符编码转换模块,支持更多的字符集:https://goframe.org/encoding/gcharset/index
    4. 新增gmutex模块,基于channel实现的高级互斥锁模块,支持更丰富的互斥锁特性:https://goframe.org/os/gmutex/index
    5. 改进glog日志模块:
      • 新增日志异步输出特性:https://goframe.org/os/glog/async
      • 新增Flags额外功能特性:https://goframe.org/os/glog/flags
      • 新增Json数据格式输出:https://goframe.org/os/glog/json
      • 新增自定义Writer接口特性:https://goframe.org/os/glog/writer
      • 修改Backtrace名称为Stack,并改进调用堆栈输出格式;
      • 新增Expose方法暴露内部默认Logger对象;
    6. 改进gdb数据库ORM模块:
      • 改进错误处理,当数据库操作没有查询到数据时,error返回sql.ErrNoRows:https://goframe.org/database/gdb/error
      • 改进Update/Delete方法支持Order BYLIMIT特性;
      • 数据库链式操作及方法操作中,预处理变量参数支持slice参数:https://goframe.org/database/gdb/chaining/model
      • 修改Priority权重配置名称为Weight
      • 新增Debug配置,可配置开启/关闭调试特性:https://goframe.org/database/gdb/config
      • 新增Offset方法,该方法为可选链式操作方法,pgsql数据库可直接通过Limit方法第二个参数自动识别为Offset语法;
      • 改进数据库动态切换特性,支持不同数据库类型的当前操作数据库切换;
      • 改进简化配置文件结构:https://goframe.org/database/gdb/config
    7. 改进gconv数据转换模块:
      • 对结构体对象转换时支持更多的标签:gconv/c/json
      • 支持*struct/[]struct/[]*struct自动初始化创建对象/数组:https://goframe.org/util/gconv/struct
      • 新增Strusts/StrctsDeep方法,用于结构体数组的递归转换;
      • 新增StructDeep方法,用于对结构体对象的递归转换;
      • 新增MapDeep方法,用于对结构体属性的递归转换;
    8. 改进ghttp模块:
      • 改进ghttp模块的分组路由功能,完善逻辑处理细节,程序更加稳健;
      • 改进ghttp.Request.Get*ToStruct方法,支持params/param/p标签,支持结构体递归转换,并且支持**struct参数的对象自动初始化;
      • 改进ghttp.CORSDefault的跨域设置参数,AllowOrigin参数调整为*
    9. 改进gvalid数据校验模块:
      • 增加对校验标签gvalid/valid/v的支持;
      • 改进CheckStruct支持对结构体对象的递归校验:https://goframe.org/util/gvalid/checkstruct
    10. 改进gtcpTCP通信模块:
      • 改进通信包协议设计,更加轻量级高效:https://goframe.org/net/gtcp/conn/pkg
      • 改进TCP Server增加对TLS的支持:https://goframe.org/net/gtcp/tls
      • 增加Server.Cloce服务端关闭方法;
    11. 改进gproc模块的通信数据结构,并使用gtcp的轻量级包协议重构消息发送逻辑;
    12. 改进gqueue模块增加数据同步缓冲机制,解决大数据量下的内存占用及延迟问题;
    13. 改进gmlock模块,使用gmutex模块替换内部的互斥锁,增加更多的操作方法;
    14. 改进gaes加密模块,增加CBC模式的加密/解密方法:
    15. 改进garray.Range/SubSlice方法,改进设计,提高性能;
    16. 改进gjson/gparser模块实现MarshalJSON接口以实现自定义的JSON数据格式转换;
    17. 改进crypto分类下模块的方法返回值,增加error错误变量返回,以保证更严谨的接口设计风格;
    18. 改进gbase64模块,输入输出类型发生改变,并增加多个相关方法;
    19. 改进gflock修改方法名UnLockUnlock,新增IsRLocked方法;
    20. 新增gfile.CopyFile/CopyDir方法,用于文件及目录的复制;
    21. 改进gjson/gparser/gvar/gcfg模块增加更多的类型转换方法;
    22. 改进gcache模块,过期时间参数支持time.Duration类型;
    23. 新增internal/structs包,强大且便捷的结构体解析,并改进框架中所有涉及到结构体反射处理的模块;
    24. 改进gbinary增加封装方法对BigEndian的支持;

    Bug Fix

    1. 修复garray.Search返回值问题;
    2. 修复garray.Contains, garray.New*ArrayFromCopy方法逻辑问题;
    3. 修复gjson.Remove删除slice参数问题;
    4. 修复gtree.AVLTree.Remove方法返回值问题;
    5. 修复gqueue.Size不准确的大小问题;
    6. 修复queue.Close问题;
    7. 修复gcache.GetOrSetLockFunc当回调函数返回nil结果时的死锁问题;
    8. 修复gfsnotify.Add方法默认递归监控添加失效问题;
    9. 修复gdb.Model.Scan在某些参数类型下的失效问题;

    注意事项

    请注意以上粗体文字部分,如有使用,在您升级时可能会出现不兼容性。