GoFrame v2.5 版本发布,企业级 Golang 开发框架


大家好啊,GoFrame框架今天发布了v2.5.0正式版本啦!👏👏👏👏

本次版本主要是对已有功能组件以及开发工具上的改进工作。其中,开发工具新增了gf gen ctrl命令,以规范化定义、开发API接口,增加控制器、SDK的代码生成提高开发效率,以解决Golang工程开发中接口层面的规范和效率问题,详情请参考:接口规范-gen ctrl。其他变更内容请参考以下change logEnjoy!🍺🍺🍺🍺🍺🍺🍺🍺

Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.5.0

完整代码变更: v2.4.0...v2.5.0,感谢本次所有的贡献开发者:

功能改进

  1. gdb
    1. 改进ORM SQL日志记录,操作的字段按照数据表字段定义顺序进行操作。
    2. 改进HOOK方法实现,支持修改in参数的Table字段后修改执行的表名。
    3. 新增AllAndCount/ScanAndCount方法,用于实现便捷的分页查询场景。
    4. 新增Model.WhereOrNot/WhereOrPrefixNot条件方法。
  2. gi18n
    1. 改进支持中文(Unicode)作为转译的键名。
  3. gclient
    1. 新增Discovery链式操作方法,用于设置本次请求的服务发现组件。
  4. ghttp
    1. 改进请求Context上下文处理,每次Context的变更将会影响底层的http.Request对象。以支持自定义HTTP Handler的数据交互场景。
    2. 新增Endpoints配置项支持,用于自定义Server的服务注册发现地址,而可以使用当前监听的地址。
  5. goai
    1. 改进参数校验识别,如果参数为必须参数,则在OpenAPIv3结果中进行标记。
  6. gsel
    1. 修复RoundRobin实现中Endpoints更新的锁机制问题。
  7. glog
    1. 新增TimeFormat配置,用于自定义日志输出的时间格式:日志组件-配置管理
    2. 改进Rotation实现,支持短运行程序的日志文件切分。
  8. gtag
    1. 新增GetGlobalEnums方法,用于获取全局注册的枚举类型。
  9. gutil
    1. 新增DumpJson方法,用于将任意类型变量按照JSON格式化打印到终端,便于人工阅读。
  10. gvalid
    1. 新增enums校验规则,用于实现枚举类型的自动识别和校验:数据校验-校验规则

社区组件

  1. 修复contrib/registry/polaris组件在多个服务端时的负载均衡问题。
  2. 改进contrib/drivers/pgsqlTableFields返回的Index字段序号统一从0开始。
  3. 改进contrib/nosql/redis新增用户配置项支持。
  4. 改进contrib/rpc/grpcx组件,grpcx.Server新增Endpoints配置项支持,用于自定义服务注册发现的地址。
  5. 新增contrib/sdk/httpclient组件,用于本次版本新增的gf gen ctrl命令生成的HTTP SDK代码文件依赖库。
  6. 新增contrib/trace/otlpgrpccontrib/trace/otlphttp组件,用以实现基于OpenTelemetry的链路跟踪统一对接组件。

开发工具

  1. 新增gf gen ctrl命令,用于编译api定义目录,自动生成规范的controllerHTTP SDK代码:接口规范-gen ctrl
  2. 改进gf gen dao命令,新增TypeMapping特性,开发者可自定义数据表字段类型与生成的Go实体数据结构属性类型映射,并且可以方便引入第三方包类型(如decimal包以支持高精度类型):数据规范-gen dao
  3. 改进gf gen enums命令,其中的Prefix参数改为Prefixes,以支持多个生成枚举类型的包前缀指定:枚举维护-gen enums
  4. 改进gf gen service命令:
    • 生成的service文件中,增加方法注释生成。
    • 当生成的service文件中存在import冲突时,自动生成import alias
  5. 改进命令行封装,暴露gfcmd.Command类型,便于开发者可以继承扩展自定义命令行功能。
  6. 改进gf docker命令,将构建文件参数设置为非必须(考虑兼容),未来将会只用于Docker构建,不再耦合二进制构建功能。如果有完整构建需求,建议未来结合gf build功能共同使用。并更新项目工程模板的make image命令,使用gf build+gf docker命令实现。
  7. 改进gf init命令,修复在部分场景下初始化项目覆盖已存在的.git/.gitignore目录及文件问题或权限报错问题。
  8. 改进gf up命令,修复在部分场景下的框架版本更新问题,以及在windows系统下的下载安装问题。
  9. 改进gf version命令,修复在部分场景下的框架版本识别问题。
  10. 修复gf gen pbentity命令,生成的proto文件实体数据结构的float32/float64/[]byte类型修改为float/double/bytes类型。
  11. 改进开发工具,部分命令可以不用显示配置importPrefix参数,如:gf gen dao/service

相關推薦

2023-01-19

大家好啊!本次版本是2022年最后一个版本,也是2023年的第一个版本。该版本主要的目标: 采用接口化设计解决了主框架对第三方开源组件go-redis耦合的问题,使得主框架更加轻量,对工具化使用框架的场景更加友好。 通过

2023-08-09

本说明 版本名称 版本说明 版本地址 GoFrame+Layui混编版 采用GoFrame、Layui等框架研发 https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_Layui Beego+Layui混编版 采用Beego、Layui等框架研发 https://gitee.com/easygoadmin/EasyGoAdmi

2022-09-01

rame、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2024-08-01

rame、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2022-11-16

eego、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2022-10-30

本说明 版本名称 版本说明 版本地址 GoFrame+Layui 混编版 采用 GoFrame、Layui 等框架研发 https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_Layui Beego+Layui 混编版 采用 Beego、Layui 等框架研发 https://gitee.com/easygoadmin/Easy

2023-03-07

节点; 2、性能优化和底层架构调优; 一款 Go 语言基于 GoFrame、Vue、AntDesign、MySQL 等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开

2024-05-29

Xorm、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2023-12-03

Xorm、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2022-10-01

Xorm、Layui、MySQL 等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开

2023-07-22

同的菜单; 3、修复用户已反馈的 BUG; 一款 Go 语言基于GoFrame、Vue3.x、AntDesign、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开

2022-08-19

本说明 版本名称 版本说明 版本地址 GoFrame+Layui 混编版 采用 GoFrame、Layui 等框架研发 https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_Layui Beego+Layui 混编版 采用 Beego、Layui 等框架研发 https://gitee.com/easygoadmin/Easy

2024-03-28

数十个Dioxus组件。 Zino 致力于打造 Rust 语言中最好用的企业级应用开发框架。 我们奉行『约定优于配置』的原则,借鉴 Node 的 Egg.js、Go 的 GoFrame、 Java 的 Spring Boot 等框架,提供开箱即用的功能模块,极大提升开发效率; 并通

2023-01-30

token的用户状态认证及casbin的权限认证 路由模式:得利于goframe2.0提供了规范化的路由注册方式,无需注解自动生成api文档 面向接口开发 内置功能 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置