重要特性

  1. 框架新增全链路跟踪特性,采用OpenTelementry标准,目前已打通HTTP Client&Server/GRPC Client&Server/ORM/Redis/Logging组件,详细介绍请参考章节:
    1. 链路跟踪-基本示例
    2. 链路跟踪-GRPC示例
  2. 数据库核心组件新增以下特性:
    1. 模型关联
      1. 模型关联-With特性
    2. 嵌套事务
    3. 子查询特性:ORM查询-子查询特性
    4. 新增数十项个ORM模型操作方法(参考PHP Laravel),正在使用goframe的小伙伴们建议务必看一下:
      1. ORM链式操作-写入保存
      2. ORM链式操作-数据查询
  3. HTTP客户端增加中间件拦截器功能特性,详情请参考章节:
  4. 数据校验组件大量改进:
    1. 增加链式操作校验对象:数据校验-校验对象
    2. 增加对Context的支持,并改进支持了强大的I18N国际化错误信息管理能力,详情请参考章节:
      1. 数据校验-自定义错误
    3. 自定义校验规则改进,增加局部校验规则注册特性,增加完整数据校验:
  5. 定时器组件gtimer的全新重构,去掉TimingWheel的实现,改为了更加稳健的PriorityQueue的改进实现,详情请参考章节:定时器-gtimer
  6. 框架核心基础组件已增加全错误堆栈特性。当错误产生时可以完整获取链路相关组件的错误堆栈信息。该特性只有一款基础组件相对完善并且统一设计的开发框架才能具备。

功能改进

  1. ORM
    1. 进一步完善ORM组件日志记录,日志仅在调试模式下有效,详细介绍请参考章节:ORM高级特性
    2. 新增数十项ORM模型操作方法(参考PHP Laravel),例如:InsertAndGetIdMin/Max/Avg/SumIncrement/DecrementWhereBetween/WhereLike/WhereIn/WhereNullOrderAsc/OrderDesc/OrderRandom 等等。正在使用goframe的小伙伴们建议务必看一下,详情请参考章节:
      1. ORM链式操作-写入保存
      2. ORM链式操作-数据查询
    3. 新版本开始,数据库ORM链式操作默认启用了字段过滤特性,当给定的参数无法与数据表字段智能匹配时将会被自动过滤,详情请参考章节:
    4. 改进pgsql数据库类型int8到类型的转换,从int类型调整为了int64
    5. 大量重构、改进工作,细节比较多,这里不再一一赘述。关键结果是组件功能更加丰富、代码更加严谨、设计更加简洁、使用更加便捷。
  2. HTTP
    1. HTTP Client增加中间件拦截器功能特性:HTTPClient-拦截器/中间件
    2. HTTP Client&Server增加链路跟踪支持:
    3. ghttp包中的客户端请求方法标记废除,后续统一采用HTTP Client对象方式使用。
    4. 改进Request.Parse方法的数据校验,直接校验提交参数,而不是校验数据转换后的struct对象:请求输入-请求校验
    5. 增加WrapF/WrapH方法,用于将标准库的http.HandlerFunc/http.Handler转换为ghttp.Server支持的服务方法类型。
    6. 其他大量改进工作,细节也很多。关键结果就是组件功能更加丰富、代码更加严谨、使用更加便捷。
  3. gvalid
    1. Check方法名称修改为了CheckValue,详情请参考章节:
    2. 新增CheckStructWithData方法,用于校验指定参数的struct对象:数据校验-Struct校验
    3. 新增Validator校验对象,用于便捷的链式操作,并可在后期进行进一步扩展:
    4. 自定义的规则方法定义增加了Context上下文变量输入,并增加RuleFuncRuleFuncMap局部校验规则注册方法:数据校验-自定义规则
    5. 左右校验方法增加了Context参数支持,并改进支持了强大的I18N国际化错误信息管理能力:
      1. 数据校验-自定义错误
    6. Error错误对象修改为了接口实现,需要注意之前使用*Error指针方式的地方会报错。
    7. 其他一些细节改进。
  4. gcache
    1. Adapter接口增加Context参数输入,便于上下文参数传递,并改进相关内置实现的适配器支持上下文参数传递:
  5. gredis
    1. 增加了对链路跟踪的支持,详情请参考章节:Redis-Context
  6. gjson
    1. Option类型名称修改为了,这是一项非兼容性更新。
    2. NewWithOption方法名称修改为了NewWithOptions
  7. gcmd
    1. 新增GetOptWithEnv方法,并将GetWithEnv方法标记废弃。
  8. glog
    1. 增加基于OpenTelemetry标准的链路跟踪支持:
  9. gproc
    1. 增加统一的信号注册监听回调特性:进程管理-信号注册监听
  10. gres
    1. 资源管理的最佳实践参考:
  11. gtimer
    1. 定时器组件gtimer的全新重构,去掉TimingWheel的实现,改为了更加稳健的PriorityQueue的改进实现,详情请参考章节:定时器-gtimer
  12. gview
    1. 所有模板解析方法增加了Context参数输入:
  13. gconv
    1. 改进Scan方法,增加对Map/Maps参数类型的自动转换支持:类型转换-Scan转换
  14. gi18n
    1. I18N国际化组件增加对Context的支持,详情请参考章节:
    2. 注意,所有方法都增加了ctx参数的输入,并去掉了部分方法的language参数,转而由ctx参数来控制language输入,并提高可扩展性:I18N国际化-使用介绍
    3. 去掉了TranslateFormatLangTfl方法。
  15. gmeta
    1. 新增gmeta元数据包,详情请参考章节:
  16. 各个组件的其他一些细节改进,不用特意在发布文档中阐述。

开发工具链