GoFrame v2.4 版本发布,企业级 Golang 开发框架
大家好啊,GoFrame 框架今天发布了 v2.4.0 正式版本啦!👏👏👏👏
该版本最大的亮点在于提供了微服务开发的功能特性、开发工具以及工程脚手架,并且提供了完善的微服务开发文档!!微服务的组件设计仍然以接口设计为主,以保证良好的灵活性和扩展性,接口维护在框架主库中;具体的接口实现仍然以务实为主,并在社区组件中提供了常用的接口实现。
其实该版本特性功能早已 Ready,但由于文档工作量较大,陆续花了 1 个月左右才相对完善,因此版本的发布时间也相应做了调整。我们认为文档和代码同等重要,是发布里程碑不可分割的部分。我们知道怎么用好,也希望能告诉大家怎么用好,才能更务实地帮助到更多的开发者。这也是 GoFrame 框架的文档能够逐步沉淀丰富的原因之一。此外,详尽的源码注释依旧英文为主,以帮助到海外使用者。官网文档仍然以中文为主,帮助到主要的大中国区开发团队。
赶快来看看我们都更新了什么东西吧!Enjoy!🍺🍺🍺🍺🍺🍺🍺🍺
完整代码变更: v2.3.0...v2.4.0
新特性
正式发布微服务开发特性,并新增完整的微服务开发官网章节:微服务开发
功能改进
数据库组件
-
gdb
-
修复跨库操作时自动查询表结构失败的问题:
-
修复 Namespace 配置在 pgsql 下未生效的问题。
-
修复使用新版统一配置,无法打开 sqlite 数据库文件的问题:
-
改进底层数据库操作返回逻辑,将底层错误通过 gerror.Wrap 后返回,以保证上层能获取底层自定义错误对象。
-
修复查询数据表时,底层 unsigned 整形字段转换为了 signed 整形类型的问题:
-
修复子查询时,多层 Model 作为子查询参数的解析问题:
-
改进时间维护功能,写入 / 更新 / 删除时间支持完整的时间(粒度到纳秒)写入。
-
修复在软删除场景下,给定空 Where 条件的未限制执行问题:
-
gredis
-
修复对象创建时的配置处理及对象初始化问题。
容器组件
-
garray
-
增加 Filter 方法,用于自定义遍历并过滤数组元素项。
-
增加 RemoveValues 方法,支持按照参数值批量删除元素项。
-
改进 InsertBefore 方法,支持批量的参数插入能力。
-
gmap
-
增加 IsSubOf 方法,用于判断当前 map 是否是指定 map 的子集。
-
gqueue
-
修复 Len/Size 长度计算问题:
-
修复 Close 方法的并发安全问题:
网络组件
-
gclient
-
增加 SetDiscovery 及 SetBuilder 方法,允许调用者自定义客户端的服务发现及负载均衡接口实现。
-
ghttp
-
改进支持参数接收时从 Header/Cookie 中读取指定参数,支持规范路由中的 in 标签定义读取 Header/Cookie(in:header/cookie)。
-
改进 ResponseWriter 实现 http.Flusher 接口,简化使用者的 Stream 输出开发逻辑:数据返回 - Stream 返回
-
改进链路跟踪实现逻辑,避免内部读取提交内容发生错误时被忽略的问题。
-
改进参数读取逻辑,避免 r.GetRequestMap() 返回内容包含 form-data 表单 body 信息的问题:
-
改进内部上下文接收逻辑:
-
原有逻辑:去掉忽略底层 Request 的 ctx 并新建支持链路跟踪的 ctx
-
最新逻辑:继承底层 Request 的 ctx 对象,并扩展该 ctx 支持链路跟踪特性
-
改进优雅关闭进程逻辑,允许自定义优雅关闭的超时时间。
-
改进配置功能,允许开发者配置自定义的服务注册接口实现对象。
系统组件
-
gcmd
-
改进 AddObject 方法,允许直接将指定的 *Command 或者规范编写的 Object 对象添加为子级命令。
-
gctx
-
修复 GetInitCtx 方法缺失 TraceID 的问题:
-
gfile
-
改进 Temp 方法,保持基础逻辑实现与标准库 os.TempDir 一致,避免单机多人协作时的临时目录冲突问题。
-
gtimer
-
创建定时器新增 Quick 选项,用以实现是否在添加定时器时同时执行指定的回调方法。
工具组件
-
gconv
-
修复 Scan 方法转换在部分场景下,如果属性为整型 / 浮点型数组时的转换失败问题:
-
修复 Interfaces 方法在属性为 0 的场景下,转换结构体直接返回 [] 的问题:
-
修复当 json tag 为 ,omitempty 不带变量名称的结构体转换问题。
-
修复当转换目标类型为自定义基本类型的指针,而转换失败的问题。
-
修复 gvar.Var 类型转换为常见第三方包 decimal.Decimal 类型失败的问题:
-
改进 Struct 方法,解决当结构体的属性类型为 time.Time/*time.Time,给定的转换值为非标准库支持的字符串如 2022-12-15 16:11:34 而引发的转换失败问题:
-
gtag
-
增加 SetGlobalEnums/GetEnumsByType 方法,用以实现自动化的 Golang Enums 管理。需要结合 gf gen enums 命令使用。
-
gutil
-
修复 Dump 方法在个别场景下的空指针报错问题:
-
gvalid
-
自定义校验方法参数新增 Field 字段,表示校验字段的名称,用以解决自定义校验错误提示的字段丢失问题:
社区组件
数据库驱动
-
改进 dm/mysql 组件,解决当时区配置中带有特殊字符(例如 /)的 QueryEscape 问题。
NoSQL 适配
-
修复 redis 组件配置中缺失的连接池配置参数。
服务注册发现
-
增加 file 注册发现组件,用于本地基于文件的服务注册发现,通常用于单节点测试。
-
完善 etcd/polaris/zookeeper 实现细节,并完善单测用例。
微服务脚手架
-
新增 grpcx 微服务组件,用于 grpc 通信协议的微服务开发:
开发工具
-
增加 gf gen pb 命令,用于编译 proto 文件生成 go pb 文件:
-
增加 gf gen pbentity 命令,用于自动生成数据库表的 proto 数据结构定义文件
-
增加 gf gen enums 命令,用于解析指定目录 go 文件,并根据 enum 定义规范自动生成 enums 数据文件,主要用于 OpenAPI 接口文档展示(实验特性):
-
改进 gf up 命令,增加自动升级工具 CLI 的功能。
-
改进 gf gen service 命令,当方法注释后不再自动生成到接口定义文件中。
-
改进 gf build 命令,增加 DumpENV 选项,用于控制在编译时是否打印编译使用的环境信息,默认关闭。
-
改进 gf docker 命令,增加 Tag 选项,用以兼容旧版本。
原文链接: https://www.oschina.net/news/238236/goframe-2-4-released
RXThinkCMF 敏捷开发框架 Laravel9.x+EleVue 版本 v2.0.0 发布
v2.0.0 更新内容:
1、优化登录模块,提升登录体验;
2、统一系统规范,统一标准和风格;
3、修改通知静态资源文件的文案;
4、优化文档地址,采用标准规范命名;
5、修改系统年份等相关标识信息;
6、优化日志管理功能,统一分类记录管理;
7、优化生成器模板引擎,丰富功能;
8、新版文档已同步更新上线;
9、修改近期用户反馈的问题;
一款 PHP 语言基于 Laravel9.x、Vue、ElementUI 等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,目前框架已集成了完整的 RBAC 权限架构和常规基础模块,前端 Vue 端支持多主题切换,可以根据自己喜欢的风格选择想一个的主题,实现了个性化呈现的需求;为了敏捷快速开发,提升研发效率,框架内置了一键 CRUD 代码生成器,自定义了模块生成模板,包括后端 PHP 文件模块和前端 Vue 端个性化模板,可以根据已建好的表结构 (字段注释需规范) 快速的一键生成整个模块的所有代码和增删改查等等功能业务,真正实现了低代码开发,极大的节省了人力成本的同时提高了开发效率,缩短了研发周期,是一款真正意义上实现组件化、低代码敏捷开发框架。
原文链接:https://www.oschina.net/news/238209/rxthinkcmf-2-0-released
GoEdge CDN v1.0.4 发布,优化细节
GoEdge 是一款可以帮你快速构建 CDN & WAF 平台的工具,支持 HTTP、HTTPS、Websocket、TCP、TLS、UDP、PROXY Protocol、IPv6、WAF 等特性,支持多个第三方 DNS 服务。
GoEdge v1.0.4 版本主要优化一些细节。
EdgeAdmin - 管理系统
-
“网站服务” 改为 “网站”、“网站列表”
-
SSL 证书:
-
选择证书时,如果证书列表为空,则提示可以搜索未指定用户证书
-
证书列表可以使用用户筛选
-
证书申请任务可以使用用户筛选
-
申请 ACME 证书时可以指定平台用户
-
SESSION 读取失败时不强制重新登录
-
节点列表页 CPU、内存使用比例增加百分号
-
安全设置增加 “检查客户端指纹” 和” 检查客户端区域” 选项,取消默认的检查客户端指纹
-
登录状态下检查与上次登录区域是否一致,以提升安全性
-
节点列表负载数据如果是 0,则显示 0.00,以往版本是不显示
-
为集群选择 DNS 域名时自动排序并不显示已下线域名
-
优化滚动条在 Firefox 上的显示
-
远程升级 API 节点时自动上传边缘节点安装文件
EdgeAPI - API 节点
-
初始化安装时创建默认用户
-
优化可用内存检查
-
修复一处访问日志可能无法正确获得对应日期的问题
-
IP 库查询 IP 时提供更多信息
-
修复只有一个泛域名时无法查询匹配证书的问题
-
修复在节点列表中不能同时使用关键词和排序的问题
-
优化 edgeIPItems 索引
-
DNSPod 支持自定义线路分组
EdgeNode - 边缘节点
-
优化 IP 名单同步速度,大幅缩短初次下载时的时间
-
环路(127.0.0.1)请求也统计带宽,避免有些使用了本地反向代理的网站无法看到统计
-
优化请求统计,增加数据上传的可能性
-
优化可用内存检查
商业版
GoEdge v1.0.4 主要优化一些细节。
EdgeAdmin - 管理系统
-
5 秒盾增加 “加入 IP 白名单” 选项,避免某些网站单单依靠 Cookie 无法追踪访问者
EdgeUser - 用户系统
-
“域名管理” 改为 “网站管理”
-
5 秒盾增加 “加入 IP 白名单” 选项,避免某些网站单单依靠 Cookie 无法追踪访问者
-
登录状态下检查与上次登录区域是否一致,以提升安全性
-
优化在 Firefox 上的显示
原文链接:https://www.oschina.net/news/238208/goedge-1-0-4-released
likeadmin基于「Spring Boot + ThinkPHP + FastAPI + Gin + TypeScript + Vue + Vite + Nuxt+ Element Plus + uni-app」实现的免费开源后台管理系统,拥有Java、PHP、Python、GO等多种后端语言版本,专业团队维护,值得信赖,欢迎下载体验。 开源地址:https://gitee-github.com/jXyUhKr 官网文档地址:https://www.likeadmin.cn
🚀 Layui 2.8.0 正式发布,朴实归来
在一个不起眼的周一的清晨,Layui 发布了 2.8.0 的正式版本,以及全新的文档站。
在 Layui 过往七年的开源历程中,从未用多达二十个预览版去为一个正式版而引路。 显然,`2.8.0` 是 Layui 一次朴实的回归,更是情怀的延续。但却并不是想以此呼吁人们重新去选择它,我们仍然坚持两年前那则《Layui 原官网下线公告》中的观点, 即仍然推荐大家去拥抱主流,始终保持对前沿技术的无限热爱,是开发者们都应具备的思维属性。 而 Layui 所做的,是为填补主流之外的那些略显狭小的空隙。
Layui 虽然并不是前端主流,但也早已不是作者个人的 Layui,而是所有仍在坚持使用它的人的 Layui,它仍然支撑着许多项目,也代表着许多人的工作,作为开源创作者的我们,应该要为这些坚持者而守望。
新文档站
在 2021 年 Layui 原官网下线后,互联网出现了许多第三方的 Layui 文档镜像站点,这在当时,给大家能继续阅读文档确实提供了便利,但原官网的下线,只是单纯一个网站自身生命周期的结束,它并不意味着 Layui 这样一个开源项目的停更,当时的公告其实也说的很清楚了,但或许是由于那则公告的用词过于「悲壮」,使得各大自媒体有所误读,从而让大家都以为是 Layui 停更了。
事实上,自那以后,Layui 仍然在 Github 和 Gitee 保持活跃,并不存在所谓的停止更新,甚至从 `2.6.9` 一直迭代到今天的 `2.8.0`,而现存的第三方文档镜像站点的内容却仍然定格在 Layui `2.6.8` 的版本,已严重滞后于 Layui 的当前版本,显然是不利于开发者们对 Layui 的应用。 两年来,Layui 始终处于没有中心文档的窘迫境地,虽然也一度以 Gitee Pages 为文档的承载,但似乎很难形成一个焦点和归属感。 随着 `2.8.0` 正式版本的发布,它所包含的上百项的更新内容,使得全新的文档站点呼之欲出。
此次上线的新版文档站,旨在为朴实归来的 Layui 提供一个新的精神「基站」,它基于 laytpl 和 markdown 驱动,在版面上进行了大量优化,内容重新编写、力求精简,以辅助大家更好地使用 Layui。 同时,Layui 文档也已和 Layui 本身一同开源在项目中,以供大家在线和离线都能阅读以及协同维护。
原文链接:https://www.oschina.net/news/238201/layui-2-8-0-released
MrDoc 0.8.9 发布,类似语雀、飞书的开源在线文档和知识库系统
MrDoc 觅思文档是基于 Python 语言的 Django 框架开发并开源的在线文档系统。
其功能类似于国内的语雀平台、看云平台、为知笔记和飞书文档,国外的 GitBook 平台。
如果你在寻找可私有化部署的在线文档系统,那么 MrDoc 觅思文档可以说是不二之选。
MrDoc 以「文档」作为系统的主要承载形式,支持用 Markdown 和富文本进行「普通文档」的写作,支持类似 Excel 的在线表格用来「表格文档」的记录。
同时以书籍形式的结构化文集作为文档的呈现形式,非常适合个人和小型团队作为私有化的文档、笔记和知识管理工具。
全平台多终端支持
浏览器扩展
MrDoc 通过官方浏览器扩展 ——MrDoc 速记(支持 Chromium 系列浏览器和火狐浏览器)(项目地址为:https://gitee.com/zmister/mrdoc-webclipper)和接入「简悦」扩展,实现了网站内容剪藏,可以化身成为互联网内容收藏神器。
桌面客户端
MrDoc 还提供了基于 Electron 开发的桌面客户端,跨平台支持 Windows、Linux 和 macOS。
移动端 APP
通过移动端 APP,你可以在手机上快速新建文集、文档,修改文档、上传图片、阅读文档……
总而言之,你所写的一切都在你自己的掌控之中,不用担心哪家的产品突然宣布停止服务,不用担心收藏在互联网平台上的内容被各种原因清理掉。
根据用户的使用反馈,很多朋友用来做个人私有云笔记、团队知识库、公司产品手册、组织规章制度和办事指南等
原文链接:https://www.oschina.net/news/238198/mrdoc-0-8-9-released
blendOS v2 已发布,可直接运行 Android 和 Web 应用
blendOS v2 “Avial” 已发布,这是一个基于 Arch Linux 的终极混合发行版。
blendOS 致力于在一个操作系统中提供所有软件。用户可以从 Arch、Fedora、Ubuntu 等发行版仓库下载软件,也可使用 apt、dnf-3、pacman 和 yay 等包管理器直接安装软件,还可享受开箱即用的 Android 应用程序和 Web 应用程序。
新版本带来了一些改进:
-
可以直接从系统 Arch 存储库和 Chaotic-AUR 存储库安装应用程序
-
安装在容器中的应用程序和二进制文件现在会自动并立即出现在基础系统上
-
开发了一个新的基于优先级的系统,它允许用户控制优先考虑哪个容器的二进制文件和应用程序。
-
Android 应用程序现在开箱即用(使用 WayDroid),可以轻松地从应用程序商店(如 Aurora Store 或 F-Droid)安装它们,并直接运行。
-
可以像常规桌面应用程序一样安装或使用网络应用程序 / PWA,还可以将自己的应用程序提交到 blendOS 网上商店。
-
可以像在常规 Arch 安装中一样使用安装系统包 pacman,包括 DE,还允许在出现任何问题时回滚到现有快照。
此外还有一些小改动:
-
现在默认包含 NVIDIA 驱动
-
ISO 现在支持 BIOS 和 UEFI(32 位和 64 位)系统
-
构建了一个新的安装程序框架,可以在 3 分钟内安装两种官方版本的 blendOS
原文链接:https://www.oschina.net/news/238175/blendos-v2-released
likeadmin基于「Spring Boot + ThinkPHP + FastAPI + Gin + TypeScript + Vue + Vite + Nuxt+ Element Plus + uni-app」实现的免费开源后台管理系统,拥有Java、PHP、Python、GO等多种后端语言版本,专业团队维护,值得信赖,欢迎下载体验。 开源地址:https://gitee-github.com/jXyUhKr 官网文档地址:https://www.likeadmin.cn