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