GoFrame 新版本特性 抢先知

简介: 下面我就以GoFrame活跃粉丝的身份为大家剧透一下GoFrame新版本的特性。

重要的新特性


  1. 开发工具新增 gen service 命令,支持自动化地根据 logic 层级代码,生成 service 接口代码、实现注入。


  1. 数据库组件特性:


  1. 新增 WhereBuilder 特性,用于更加灵活的 SQL 条件语句组合:ORM 查询 - Where/WhereOr/WhereNot
  2. 新增 Hook 特性,用于自定义钩子事件处理:ORM 链式操作 - Hook 特性


3.框架新增 DeepCopy 特性,用于类型的深度拷贝:


  1. 新增 gutil.Copy 方法,用于深度拷贝指定内容。
  2. 泛型类型新增 Copy 方法,用于深度拷贝自身内容。
  3. 框架部分数据类型已支持深度拷贝特性,例如:gvar, garray, gmap 等基础容器类型。


主要改进


社区组件


ORM 驱动实现


  1. 新增 drivers/clickhouse,用于对接 clickhousegoframe ORM 组件。
  2. 完善 clickhouse/mssql/pgsql/sqlite/oracle 组件单元测试。
  3. mysql 驱动从主库迁移到社区模块,便于将 mysql 从主库解耦。


注意:因此从后续版本开始,开发者需要手动引入驱动依赖。


注册发现


  1. Service 实现对象改进为接口定义,并提供默认的 Service 实现,提高扩展性和易用性。
  2. 改进 HTTP/GRPC Client&Server 对接实现。


负载均衡


  1. 改进 Node 接口定义,新增 Nodes 接口定义。
  2. 修复 HTTP Client 下的服务发现负载均衡问题。


网络组件


  1. gclient
  1. 改进服务发现实现逻辑。
  2. 修复客户端关闭错误,引起的连接池无法复用问题。
  1. ghttp
  1. 改进 Request.GetUrl 方法对 URL Schema 获取细节。
  2. 参数接收支持 UploadFile 属性自动接收。
  3. 新增接口文档自定义 UI 指导文档
  4. 接口文档默认依赖的外部 JS CDN 改为 unpkg.com
  5. 改进服务注册实现逻辑。
  6. 改进内部细节实现逻辑。
  7. 修复参数为空判断问题。
  1. goai
  1. 改进更规范化符合 OpenAPIV3 协议实现。
  2. 支持所有 x- 开头的自定义标签,自动添加 OpenAPIV3 的结果中。


系统组件


  1. gcfg
  1. 默认的文件系统接口实现新增对 property 文件格式的支持。
  1. gsession
  1. 解决当访问用户过多造成的内存占用过大的问题。
  1. gproc
  1. 新增跨进程的链路跟踪特性。


容器组件


  1. garray
  1. 改进 Unique 方法性能,增加 DeepCopy 接口实现。
  1. glist
  1. 增加 DeepCopy 接口实现。
  1. gmap
  1. 增加 DeepCopy 接口实现。
  1. gset
  1. 增加 DeepCopy 接口实现。
  1. gtype
  1. 增加 DeepCopy 接口实现。
  1. gvar
  1. 增加 Copy 方法,用于深度拷贝当前泛型对象。
  2. 增加 DeepCopy 接口实现。


错误处理


  1. gerror
  1. 新增 Unwrap 方法(同 Next 方法),用以支持 Golang 新版本的 Unwrap 错误接口。
  2. 新增 Equal 方法,用于判断两个错误是否相等。
  3. 新增 Is 方法,用于支持 Golang 新版本的 Is 错误接口。


工具方法


  1. gconv
  1. 去掉整型转换时对八进制字符串的支持。
  2. 改进内部实现逻辑,提高可读性保障可维护性。
  1. gutil
  1. 新增 gutil.Copy 方法,用于深度拷贝指定内容。
  2. 改进 gutil.Dump 方法。
相关文章
|
4月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
380 0
|
敏捷开发 架构师 Java
GitHub上线重量级分布式架构原理设计笔记,开源的东西看着就是爽
在分布式系统中,一次业务处理可能需要多个应用来实现,比如用户发送一次下单请求,就涉及到订单系统创建订单,库存系统减库存,而对于一次下单,订单创建与减库存应该是要同时成功或者同时失效,但在分布式系统中,如果不做处理,就很有可能订单创建成功,但是减库存失败,那么解决这类问题,就需要用到分布式事务……
|
8月前
|
小程序 物联网 测试技术
【社区每周】小程序基础库更新2.9.9版本(1月第一期)
【社区每周】小程序基础库更新2.9.9版本(1月第一期)
73 6
|
8月前
|
移动开发 小程序 IDE
【社区每周】小程序基础库1.0版本不再维护(2022年9月第一期)
【社区每周】小程序基础库1.0版本不再维护(2022年9月第一期)
58 1
|
存储 缓存 安全
CleanMyMac X有哪些新功能优势?要不要下载
相信大多数MAC用户都较为了解,Mac虽然有着许多亮点的性能,但是让用户叫苦不迭的还其硬盘空间小的特色,至于很多人因为文件堆积以及软件缓存等,造成系统空间内存不够使用的情况。于是清理工具就成为了大多数MAC用户使用频率较高的实用工具。Mac系统是较为复杂的,而选择一款好的系统清理工具,就能给用户带来更加舒适的电脑使用体验。那么就来列举CleanMyMac工具,相互比较并给予用户客观的使用评价。
117 0
|
存储 前端开发 算法
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
196 0
1024程序节|完全开源、编程原生体验、轻量化,不来试试吗
|
存储 NoSQL Java
GoFrame避坑指南和实践干货(2)
用GoFrame已经开发了一段时间,今天为大家分享避坑指南和实践干货。这些坑并不是框架设计者的问题,更多的是我作为初学者的各种摸石头过河
234 0
GoFrame避坑指南和实践干货(2)
|
Ruby Perl
Cocoapods迄今为止的安装使用方法,更新下网上众多有些过时的操作
Cocoapods迄今为止的安装使用方法,更新下网上众多有些过时的操作
992 0
|
数据库
GoFrame避坑指南和实践干货
生成的dao文件和同事们的不一致,生成文件成功,但是对应的Columns是空的,虽然有这个方法,但是方法内没有值。我的版本比同事们的略高,我一直以为是这个原因,各种降级和同事保持一致的版本后还是不行。
164 0
|
移动开发 缓存 前端开发
ReactNative项目升级避坑指南
ReactNative项目升级避坑指南
469 0
ReactNative项目升级避坑指南

热门文章

最新文章