内容简介:大家好啊!万众瞩目的GoFrame v2版本终于发布了正式版本!本次版本包含了大量改进以及新特性,同时新增了一些开创性的功能特性。 去年夏天到今年春天,一路以来的努力,希望大家满意。 感谢所有社区小伙伴的贡献,...
大家好啊!万众瞩目的GoFrame v2版本终于发布了正式版本!本次版本包含了大量改进以及新特性,同时新增了一些开创性的功能特性。
去年夏天到今年春天,一路以来的努力,希望大家满意。
感谢所有社区小伙伴的贡献,感谢社区朋友们的支持!
新的一年,我们继续,脚踏实地,不忘初心!
一、重要特性
1、新版工程设计
2、全链路跟踪特性
- 可观测性更进一步:大胆的前瞻以及决心
- 框架默认启用
OpenTelemetry特性
- 框架默认创建
TraceID,按照OpenTelemetry生成标准
- 框架核心组件均支持链路跟踪信息传递
- 日志组件支持链路信息打印
- 更多详细介绍:全链路跟踪设计
3、规范路由注册特性
- 规范化API按照结构化编程设计
- 规范化API接口方法参数风格定义
- 更加简化的路由注册与维护
- 统一接口返回数据格式设计
- 自动的API参数对象化接收与校验
- 自动生成基于标准
OpenAPIv3协议的接口文档
- 自动生成
SwaggerUI页面
- 更多详细介绍:路由注册-规范路由
4、全错误堆栈特性
- 框架层面所做的重大决定
- 框架 所有 组件错误均支持错误堆栈
- 详细介绍:全错误堆栈设计
5、全新错误码特性
- 采用接口化设计,扩展性高
- 提供可供选择的常见错误码
- 框架核心组价底层已增加错误码支持,例如根据
error中的错误码可以识别是否DB执行错误
- 更多详细介绍:错误处理-错误码特性
6、组件接口化设计
- 自顶向下统一化的接口化设计
- 核心组件均采用接口化设计
- 更高的扩展性、可定制性
- 更多详细介绍:接口化与泛型设计
7、框架泛型的支持
- 什么是框架
gvar泛型?
- 框架
gvar泛型在框架核心组件中的大量使用
- 框架
gvar泛型的重要价值
- 为什么不建议在顶层业务中使用泛型
- 更多详细介绍:接口化与泛型设计
8、ORM的大量改进
- 详细介绍:数据库ORM
9、其他重要改进
1)日志组件Handler特性
- 采用中间件设计
- 支持多个
Handler处理
- 为开发者自定义日志处理提供了更灵活强大的支持
- 更多详细介绍:日志组件-Handler
2)日志组件颜色打印
- 在终端中默认输出颜色打印
- 默认不同级别不同的颜色,可配置
- 输出到文件/自定义
Writer默认关闭,可通过相关配置开启
- 更多详细介绍:日志组件-颜色打印
4)调试模式介绍完善
- 更多详细介绍:调试模式
二、功能改进
1、数据组件
/database/gdb
- 废弃
Table方法,统一使用Model方法创建Model对象。
- 废弃
Model中的Struct/Structs方法,统一使用Scan方法执行查询结果到Struct对象/对象数组映射转换:ORM查询-Scan
- 废弃
BatchInsert/BatchReplace/BatchSave方法,统一使用Insert/Replace/Save方法实现,内部自动实现参数类型识别采用单条写入还是批量写入:ORM链式操作-写入保存
- 增加
DoFilter接口方法,用于ORM提交执行SQL&Args到底层driver之前的SQL&Args自定义过滤:ORM接口开发-回调处理
- 增加
DoCommit接口方法,用于ORM提交执行SQL&Args到底层driver之前的自定义处理:https://
- 增加
ConvertDataForRecord接口方法,用于自定义的数据转换处理。ORM接口开发-回调处理
- 增加
Raw方法,用于通过原始SQL语句构建Model对象,随后可以使用Model的链式操作以及各种特性:ORM链式操作-模型创建
- 增加
Handler特性,用于自定义的Model对象修改,并返回新的Model对象,可轻松地复用常见的逻辑:ORM链式操作-Handler特性
- 增加
Union/UnionAll特性,用于多条SQL/Model的查询结果合并:ORM查询-Union/UnionAll
- 增加
With特性对条件查询以及 排序 语句的配置支持:模型关联-With特性
- 增加
OnDuplicate/OnDuplicateEx方法,用于指定Save方法的更新/不更新字段:ORM链式操作-写入保存
- 增加
Wheref/WhereOrf方法,用于带有格式化字符串语句的条件传递:ORM查询-Where/WhereOr/WhereNot
- 增加
WhereLT/WhereLTE/WhereGT/WhereGTE以及WhereOrLT/WhereOrLTE/WhereOrGT/WhereOrGTE方法,用以为ORM添加常见的比较条件:https://
- 增加
WherePrefix/WhereOrPrefix方法,用以在为条件字段加上表前缀,常用于关联查询中:https://
- 增加
FieldsPrefix/FieldsExPrefix方法,用于为查询的字段增加自定义的表前缀,常用于关联查询中:https://
- 增加
FieldsCount/FieldsSum/FieldsMin/FieldsMax/FieldsAvg方法,用于增加常见的统一查询条件:https://
- 增加
LeftJoinOnField/RightJoinOnField/InnerJoinOnField方法,用于便捷关联带有相同字段名称的表:https://
- 增加
OmitEmptyWhere/OmitEmptyData方法,用于特定过滤Where条件和Data数据中的空值数据:ORM链式操作-字段过滤
- 增加
OmitNil/OmitNilWhere/OmitNilData方法,用于特定过滤Where条件和Data数据中的nil数据:ORM链式操作-字段过滤
- 增加
TimeZone配置项,用于数据库查询的自定义时区转换(目前支持mysql/pgsql):ORM使用配置
- 改进
Cache缓存特性,支持增加准确的缓存参数控制:https://
- 增加
Close方法,用于手动关闭数据库连接:https://
- 去掉
ORM在使用没有自定义配置时默认100连接数的配置限制。
- 改进时间维护特性,不再自动过滤开发者提交的
CreatedAt/UpdatedAt/DeletedAt相关参数,意味着开发者可以在ORM操作中自定义相关时间字段的更新。
- 改进数据库执行的 SQL 日志记录,增加影响行数记录:https://
- 接口方法
HandleSqlBeforeCommit名称修改为了DoCommit。
- 数据库方法操作统一增加
context.Context作为第一必须参数。
- 修复
gdb组件的With特性多层级查询失效问题。
- 删除查询结果类型
Record/Result的所有已废弃的方法。
- 单元测试完善。
/database/gredis
-
采用适配器模式,以接口化设计重构该组件,以提高扩展性:Redis-接口化设计
- 默认提供基于第三方
goredis包的适配器实现,增加了对Redis集群的支持:Redis-配置管理
- 由于集群特性的支持,配置文件格式发生改变:Redis-配置管理
2、网络组件
/net/ghttp
- 新增路由注册方式:路由注册-规范路由
- 默认将
Request对象注入到ctx上下文对象中,并增加RequestFromCtx/g.RequestFromCtx方法获取ctx中的Request对象。
- 将
Client功能特性进行抽离,封装为gclient组件:HTTPClient
Server日志增加对ctx上下文链路信息打印的支持,并改进日志格式:链路跟踪
- 参数获取返回统一使用
*gvar.Var泛型对象。
- 废弃
ghttp中相关的HTTP Client直接操作方法,必须通过创建Client对象来实现客户端访问操作。
- 废弃
Controller路由注册方式,并删除相关实现逻辑代码。
/net/gtrace
- 升级
go.opentelemetry.io/otel到最新的正式版。
- 完善全新的链路跟踪使用文档:链路跟踪
3、系统组件
/os/glog
- 为推进可观测性特性,落实链路跟踪规范,所有日志打印方法均增加
context.Context参数。
- 日志组件增加了
Handler特性,采用中间件设计、支持多个Handler处理,为开发者自定义日志处理提供了更灵活强大的支持:日志组件-Handler
- 日志组件增加了对内容的颜色打印特性支持,在终端中默认输出颜色打印,输出到文件/自定义
Writer默认关闭、可通过相关配置开启:日志组件-颜色打印
- 废弃
Println方法。
- 文档更新:日志组件
/os/gres
- 新增
Export方法用于将资源组件中的文件导出到本地磁盘:资源管理-方法介绍
/os/gfile
- 新增
SizeFormat方法用于获取指定文件格式化后的大小字符串。
- 文档更新:文件管理-gfile
/os/gcache
- 采用适配器模式,以接口化设计重构该组件,以提高扩展性:缓存管理-接口化设计
- 默认提供了基于进程内存的缓存实现:缓存管理-内存缓存
- 所有操作方法增加了
context.Context上下文参数。
- 参数获取返回统一使用
*gvar.Var泛型对象。
- 增加
Must*方法,用以直接获取参数并在产生错误时直接panic。
/os/gcfg
- 采用适配器模式,以接口化设计重构该组件,以提高扩展性:配置管理-接口化设计
- 默认提供了基于文件系统的配置管理实现:配置管理
- 参数获取返回统一使用
*gvar.Var泛型对象。
- 所有操作方法增加了
context.Context上下文参数。
- 增加
GetWithEnv方法,当配置适配器中无法查找到对应的参数时,将会自动读取环境变量中的相应参数:配置管理-配置读取
- 增加
GetWithCmd方法,当配置适配器中无法查找到对应的参数时,将会自动读取命令行参数中的相应参数:配置管理-配置读取
- 增加
Must*方法,用以直接获取参数并在产生错误时直接panic。
- 配置组件易用性改进,通过单例对象访问配置组件将会按照
toml/yaml/yml/json/ini/xml文件后缀自动检索配置文件:配置管理
/os/gcmd
- 参数获取返回统一使用
*gvar.Var泛型对象。
- 全新的多层级命令行管理方式,支持自动生成命令行使用提示:命令管理-命令行对象
- 增加基于对象的命令行管理方式,更适合大量的终端命令场景:命令管理-结构化参数
/os/genv
- 参数获取返回统一使用
*gvar.Var泛型对象。
/os/gcron
- 定时任务方法定义增加
context.Context参数。
- 所有创建定时任务方法增加
context.Context参数。
- 文档更新:定时任务-gcron
/os/gtime
- 废弃
Second/Millisecond/Microsecond/Nanosecond包方法,使用Timestamp/TimestampMilli/TimestampMicro/TimestampNano方法替代。
- 文档更新:时间管理-gtime
/os/gtimer
- 定时器方法定义增加
context.Context参数。
- 所有创建定时器方法增加
context.Context参数。
- 改进基于优先级队列数据结构存储的定时任务执行检测机制,提高执行性能。
- 文档更新:定时器-gtimer
/os/grpool
- 回调方法定义增加
context.Context参数。
goroutine池任务添加方法增加context.Context参数。
- 文档更新:协程管理-grpool
/os/gsession
gsession.Storage接口增加ctx上下文参数输输入,用于承接上下文信息、实现完整的链路跟踪。并未保证严谨性增加error返回参数:Session
- 参数获取返回统一使用
*gvar.Var泛型对象。
/os/gview
- 模板解析方法统一增加
context.Context参数。
- 增加
plus/minus/times/divide四则运算内置模板方法。
- 文档更新:模板引擎
/os/gstructs
- 将框架
internal中的structs包开放,命名为gstructs,用于struct反射操作的高级使用包:对象信息-gstructs
4、错误处理
/errors/gerror
- 增加
Message方法,用于获取指定错误码的错误信息。
- 增加
CodeMessage方法,用于获取指定错误的错误码信息。
- 增加
NewOption方法,用于自定义配置的错误对象创建,献给框架高级玩家。
- 增加
HasStack方法,用于判断给定的error接口对象是否实现(包含)了堆栈信息。
- 错误码从整型改为接口对象,以实现可定制性并提高可扩展性,详情参考
gcode组件介绍:错误处理-错误码特性
- 提高易用性,改进
NewCode/NewCodeSkip/WrapCode/WrapCodeSkip方法,调增text输入参数为非必须,默认使用对应错误码的Message信息。
/errors/gcode
- 增加
gcode错误码组件,提供可定制型和扩展性极强的错误码管理,结合gerror组件实现强大的错误处理:错误处理-错误码使用
5、其他组件
/container/garray
- 各数组类型统一增加
At方法,用于直接获取返回索引位置的数据。
- 文档更新:数组类型-方法介绍
/debug/gdebug
- 增加
TestDataContent方法,用于直接获取测试包下testdata目录下指定路径文件内容。
- 文档更新:调试功能-gdebug
/encoding/gjson
- 废弃大部分的
Get*方法,统一使用Get方法获取指定pattern的内容,并统一返回*gvar.Var泛型对象,开发者根据业务场景自行通过对应方法便捷转换为特定类型变量。
- 增加若干
Must*方法。
- 使用文档全面更新:https://
/frame/g
/frame/gmvc
- 标记废除
gmvc耦合模块,未来不再进一步支持。
/util/gutil
- 改进实现
Dump方法,不再使用json包实现类型打印,而是自实现了对任意类型的打印特性,并且支持打印详细的数据类型:工具方法-gutil
- 增加
SliceToMapWithColumnAsKey方法,用以将Slice按照一定规则转换为Map。
/utils/gvalid
- 增加
bail校验规则,以及Bail链式操作方法,用以在数据校验不通过时直接退出校验,不再执行后续校验规则。
- 增加
datetime校验规则,用以校验常用日期时间类型,其中日期之间支持的连接符号只支持-,格式如:2006-01-02 12:00:00。
- 去掉包校验方法,统一使用链式操作实现数据校验。
- 所以校验方法增加
context.Context参数。
- 全新、超完善的数据校验组件使用文档:数据校验
其他大量的改进细节,这里不再赘述,感兴趣的小伙伴可参阅官网 goframe.org
三、CLI工具链
- 采用全新
gcmd命令行对象封装重构实现。
- 改进
init命令,支持SingleRepo/MonoRepo两种仓库初始化。并且项目初始化不再依赖远端仓库。
- 改进
gen dao命令,采用全新的V2工程化设计,自动生成entity/dao/dto代码文件。
- 去掉
update命令,工具的更新统一走 https://github.com/gogf/gf-cli
- 去掉
get命令。
- 全新文档:开发工具
OpenTelemetry特性TraceID,按照OpenTelemetry生成标准OpenAPIv3协议的接口文档SwaggerUI页面error中的错误码可以识别是否DB执行错误gvar泛型?gvar泛型在框架核心组件中的大量使用gvar泛型的重要价值Handler特性Handler处理Writer默认关闭,可通过相关配置开启1、数据组件
/database/gdb- 废弃
Table方法,统一使用Model方法创建Model对象。 - 废弃
Model中的Struct/Structs方法,统一使用Scan方法执行查询结果到Struct对象/对象数组映射转换:ORM查询-Scan - 废弃
BatchInsert/BatchReplace/BatchSave方法,统一使用Insert/Replace/Save方法实现,内部自动实现参数类型识别采用单条写入还是批量写入:ORM链式操作-写入保存 - 增加
DoFilter接口方法,用于ORM提交执行SQL&Args到底层driver之前的SQL&Args自定义过滤:ORM接口开发-回调处理 - 增加
DoCommit接口方法,用于ORM提交执行SQL&Args到底层driver之前的自定义处理:https:// - 增加
ConvertDataForRecord接口方法,用于自定义的数据转换处理。ORM接口开发-回调处理 - 增加
Raw方法,用于通过原始SQL语句构建Model对象,随后可以使用Model的链式操作以及各种特性:ORM链式操作-模型创建 - 增加
Handler特性,用于自定义的Model对象修改,并返回新的Model对象,可轻松地复用常见的逻辑:ORM链式操作-Handler特性 - 增加
Union/UnionAll特性,用于多条SQL/Model的查询结果合并:ORM查询-Union/UnionAll - 增加
With特性对条件查询以及 排序 语句的配置支持:模型关联-With特性 - 增加
OnDuplicate/OnDuplicateEx方法,用于指定Save方法的更新/不更新字段:ORM链式操作-写入保存 - 增加
Wheref/WhereOrf方法,用于带有格式化字符串语句的条件传递:ORM查询-Where/WhereOr/WhereNot - 增加
WhereLT/WhereLTE/WhereGT/WhereGTE以及WhereOrLT/WhereOrLTE/WhereOrGT/WhereOrGTE方法,用以为ORM添加常见的比较条件:https:// - 增加
WherePrefix/WhereOrPrefix方法,用以在为条件字段加上表前缀,常用于关联查询中:https:// - 增加
FieldsPrefix/FieldsExPrefix方法,用于为查询的字段增加自定义的表前缀,常用于关联查询中:https:// - 增加
FieldsCount/FieldsSum/FieldsMin/FieldsMax/FieldsAvg方法,用于增加常见的统一查询条件:https:// - 增加
LeftJoinOnField/RightJoinOnField/InnerJoinOnField方法,用于便捷关联带有相同字段名称的表:https:// - 增加
OmitEmptyWhere/OmitEmptyData方法,用于特定过滤Where条件和Data数据中的空值数据:ORM链式操作-字段过滤 - 增加
OmitNil/OmitNilWhere/OmitNilData方法,用于特定过滤Where条件和Data数据中的nil数据:ORM链式操作-字段过滤 - 增加
TimeZone配置项,用于数据库查询的自定义时区转换(目前支持mysql/pgsql):ORM使用配置 - 改进
Cache缓存特性,支持增加准确的缓存参数控制:https:// - 增加
Close方法,用于手动关闭数据库连接:https:// - 去掉
ORM在使用没有自定义配置时默认100连接数的配置限制。 - 改进时间维护特性,不再自动过滤开发者提交的
CreatedAt/UpdatedAt/DeletedAt相关参数,意味着开发者可以在ORM操作中自定义相关时间字段的更新。 - 改进数据库执行的 SQL 日志记录,增加影响行数记录:https://
- 接口方法
HandleSqlBeforeCommit名称修改为了DoCommit。 - 数据库方法操作统一增加
context.Context作为第一必须参数。 - 修复
gdb组件的With特性多层级查询失效问题。 - 删除查询结果类型
Record/Result的所有已废弃的方法。 - 单元测试完善。
- 废弃
/database/gredis-
采用适配器模式,以接口化设计重构该组件,以提高扩展性:Redis-接口化设计
- 默认提供基于第三方
goredis包的适配器实现,增加了对Redis集群的支持:Redis-配置管理 - 由于集群特性的支持,配置文件格式发生改变:Redis-配置管理
-
2、网络组件
/net/ghttp- 新增路由注册方式:路由注册-规范路由
- 默认将
Request对象注入到ctx上下文对象中,并增加RequestFromCtx/g.RequestFromCtx方法获取ctx中的Request对象。 - 将
Client功能特性进行抽离,封装为gclient组件:HTTPClient Server日志增加对ctx上下文链路信息打印的支持,并改进日志格式:链路跟踪- 参数获取返回统一使用
*gvar.Var泛型对象。 - 废弃
ghttp中相关的HTTP Client直接操作方法,必须通过创建Client对象来实现客户端访问操作。 - 废弃
Controller路由注册方式,并删除相关实现逻辑代码。
/net/gtrace- 升级
go.opentelemetry.io/otel到最新的正式版。 - 完善全新的链路跟踪使用文档:链路跟踪
- 升级
3、系统组件
/os/glog- 为推进可观测性特性,落实链路跟踪规范,所有日志打印方法均增加
context.Context参数。 - 日志组件增加了
Handler特性,采用中间件设计、支持多个Handler处理,为开发者自定义日志处理提供了更灵活强大的支持:日志组件-Handler - 日志组件增加了对内容的颜色打印特性支持,在终端中默认输出颜色打印,输出到文件/自定义
Writer默认关闭、可通过相关配置开启:日志组件-颜色打印 - 废弃
Println方法。 - 文档更新:日志组件
- 为推进可观测性特性,落实链路跟踪规范,所有日志打印方法均增加
/os/gres- 新增
Export方法用于将资源组件中的文件导出到本地磁盘:资源管理-方法介绍
- 新增
/os/gfile- 新增
SizeFormat方法用于获取指定文件格式化后的大小字符串。 - 文档更新:文件管理-gfile
- 新增
/os/gcache- 采用适配器模式,以接口化设计重构该组件,以提高扩展性:缓存管理-接口化设计
- 默认提供了基于进程内存的缓存实现:缓存管理-内存缓存
- 所有操作方法增加了
context.Context上下文参数。 - 参数获取返回统一使用
*gvar.Var泛型对象。 - 增加
Must*方法,用以直接获取参数并在产生错误时直接panic。
/os/gcfg- 采用适配器模式,以接口化设计重构该组件,以提高扩展性:配置管理-接口化设计
- 默认提供了基于文件系统的配置管理实现:配置管理
- 参数获取返回统一使用
*gvar.Var泛型对象。 - 所有操作方法增加了
context.Context上下文参数。 - 增加
GetWithEnv方法,当配置适配器中无法查找到对应的参数时,将会自动读取环境变量中的相应参数:配置管理-配置读取 - 增加
GetWithCmd方法,当配置适配器中无法查找到对应的参数时,将会自动读取命令行参数中的相应参数:配置管理-配置读取 - 增加
Must*方法,用以直接获取参数并在产生错误时直接panic。 - 配置组件易用性改进,通过单例对象访问配置组件将会按照
toml/yaml/yml/json/ini/xml文件后缀自动检索配置文件:配置管理
/os/gcmd- 参数获取返回统一使用
*gvar.Var泛型对象。 - 全新的多层级命令行管理方式,支持自动生成命令行使用提示:命令管理-命令行对象
- 增加基于对象的命令行管理方式,更适合大量的终端命令场景:命令管理-结构化参数
- 参数获取返回统一使用
/os/genv- 参数获取返回统一使用
*gvar.Var泛型对象。
- 参数获取返回统一使用
/os/gcron- 定时任务方法定义增加
context.Context参数。 - 所有创建定时任务方法增加
context.Context参数。 - 文档更新:定时任务-gcron
- 定时任务方法定义增加
/os/gtime- 废弃
Second/Millisecond/Microsecond/Nanosecond包方法,使用Timestamp/TimestampMilli/TimestampMicro/TimestampNano方法替代。 - 文档更新:时间管理-gtime
- 废弃
/os/gtimer- 定时器方法定义增加
context.Context参数。 - 所有创建定时器方法增加
context.Context参数。 - 改进基于优先级队列数据结构存储的定时任务执行检测机制,提高执行性能。
- 文档更新:定时器-gtimer
- 定时器方法定义增加
/os/grpool- 回调方法定义增加
context.Context参数。 goroutine池任务添加方法增加context.Context参数。- 文档更新:协程管理-grpool
- 回调方法定义增加
/os/gsessiongsession.Storage接口增加ctx上下文参数输输入,用于承接上下文信息、实现完整的链路跟踪。并未保证严谨性增加error返回参数:Session- 参数获取返回统一使用
*gvar.Var泛型对象。
/os/gview- 模板解析方法统一增加
context.Context参数。 - 增加
plus/minus/times/divide四则运算内置模板方法。 - 文档更新:模板引擎
- 模板解析方法统一增加
/os/gstructs- 将框架
internal中的structs包开放,命名为gstructs,用于struct反射操作的高级使用包:对象信息-gstructs
- 将框架
4、错误处理
/errors/gerror- 增加
Message方法,用于获取指定错误码的错误信息。 - 增加
CodeMessage方法,用于获取指定错误的错误码信息。 - 增加
NewOption方法,用于自定义配置的错误对象创建,献给框架高级玩家。 - 增加
HasStack方法,用于判断给定的error接口对象是否实现(包含)了堆栈信息。 - 错误码从整型改为接口对象,以实现可定制性并提高可扩展性,详情参考
gcode组件介绍:错误处理-错误码特性 - 提高易用性,改进
NewCode/NewCodeSkip/WrapCode/WrapCodeSkip方法,调增text输入参数为非必须,默认使用对应错误码的Message信息。
- 增加
/errors/gcode- 增加
gcode错误码组件,提供可定制型和扩展性极强的错误码管理,结合gerror组件实现强大的错误处理:错误处理-错误码使用
- 增加
5、其他组件
/container/garray- 各数组类型统一增加
At方法,用于直接获取返回索引位置的数据。 - 文档更新:数组类型-方法介绍
- 各数组类型统一增加
/debug/gdebug- 增加
TestDataContent方法,用于直接获取测试包下testdata目录下指定路径文件内容。 - 文档更新:调试功能-gdebug
- 增加
/encoding/gjson- 废弃大部分的
Get*方法,统一使用Get方法获取指定pattern的内容,并统一返回*gvar.Var泛型对象,开发者根据业务场景自行通过对应方法便捷转换为特定类型变量。 - 增加若干
Must*方法。 - 使用文档全面更新:https://
- 废弃大部分的
/frame/g/frame/gmvc- 标记废除
gmvc耦合模块,未来不再进一步支持。
- 标记废除
/util/gutil- 改进实现
Dump方法,不再使用json包实现类型打印,而是自实现了对任意类型的打印特性,并且支持打印详细的数据类型:工具方法-gutil - 增加
SliceToMapWithColumnAsKey方法,用以将Slice按照一定规则转换为Map。
- 改进实现
/utils/gvalid- 增加
bail校验规则,以及Bail链式操作方法,用以在数据校验不通过时直接退出校验,不再执行后续校验规则。 - 增加
datetime校验规则,用以校验常用日期时间类型,其中日期之间支持的连接符号只支持-,格式如:2006-01-02 12:00:00。 - 去掉包校验方法,统一使用链式操作实现数据校验。
- 所以校验方法增加
context.Context参数。 - 全新、超完善的数据校验组件使用文档:数据校验
- 增加
其他大量的改进细节,这里不再赘述,感兴趣的小伙伴可参阅官网 goframe.org
三、CLI工具链
- 采用全新
gcmd命令行对象封装重构实现。
- 改进
init命令,支持SingleRepo/MonoRepo两种仓库初始化。并且项目初始化不再依赖远端仓库。
- 改进
gen dao命令,采用全新的V2工程化设计,自动生成entity/dao/dto代码文件。
- 去掉
update命令,工具的更新统一走 https://github.com/gogf/gf-cli
- 去掉
get命令。
- 全新文档:开发工具
gcmd命令行对象封装重构实现。init命令,支持SingleRepo/MonoRepo两种仓库初始化。并且项目初始化不再依赖远端仓库。gen dao命令,采用全新的V2工程化设计,自动生成entity/dao/dto代码文件。update命令,工具的更新统一走 https://github.com/gogf/gf-cliget命令。以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- quickly 1.3 版本发布,CSS 前端框架
- WebMagic 0.7.1 版本发布,Java 爬虫框架
- PHP 开发框架 TimoPHP 1.7.0 版本发布
- WebMagic 0.7.0 版本发布,Java 爬虫框架
- WebMagic 0.7.2 版本发布,Java 爬虫框架
- DiQuick Web 前端框架 1.2.3 版本更新
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。