go 创建对象数组_GoFrame v1.8.0 发布,Go 应用开发框架 - Go语言中文社区

go 创建对象数组_GoFrame v1.8.0 发布,Go 应用开发框架


046d1f0f2f7d01b2085fcbb0c62ff804.png

IT服务圈儿

有温度、有态度的IT自媒体平台

来源:文章转载自 OSCHINA 社区 [http://www.oschina.net]

新功能改进

1、框架目前 69 个开发模块(不包括内部模块),原生代码 65302 行(不包含第三包依赖包),单元测试覆盖率达到 77% ;

2、新增 gerror 错误处理模块:https://goframe.org/errors/gerror/index

3、改进 gcharset 字符编码转换模块,支持更多的字符集:https://goframe.org/encoding/gcharset/index

4、新增 gmutex 模块,基于 channel 实现的高级互斥锁模块,支持更丰富的互斥锁特性:https://goframe.org/os/gmutex/index

5、改进 glog 日志模块:

  • 新增日志异步输出特性:

    https://goframe.org/os/glog/async

  • 新增 Flags 额外功能特性:

    https://goframe.org/os/glog/flags

  • 新增 Json 数据格式输出:

    https://goframe.org/os/glog/json

  • 新增自定义 Writer 接口特性:

    https://goframe.org/os/glog/writer

  • 修改 Backtrace 名称为 Stack ,并改进调用堆栈输出格式;

  • 新增 Expose 方法暴露内部默认 Logger 对象;

6、改进 gdb 数据库 ORM 模块:

  • 改进错误处理,当数据库操作没有查询到数据时, error 返回 sql.ErrNoRows 

    https://goframe.org/database/gdb/error

  • 改进 Update/Delete 方法支持 Order BY 及 LIMIT 特性;

  • 数据库链式操作及方法操作中,预处理变量参数支持 slice 参数:

    https://goframe.org/database/gdb/chaining/model

  • 修改 Priority 权重配置名称为 Weight 

  • 新增 Debug 配置,可配置开启/关闭调试特性:https://goframe.org/database/gdb/config

  • 新增 Offset 方法,该方法为可选链式操作方法, pgsql 数据库可直接通过 Limit 方法第二个参数自动识别为 Offset 语法;

  • 改进数据库动态切换特性,支持不同数据库类型的当前操作数据库切换;

  • 改进简化配置文件结构:

    https://goframe.org/database/gdb/config

7、改进 gconv 数据转换模块:

  • 对结构体对象转换时支持更多的标签: gconv/c/json ;

  • 支持 *struct/[]struct/[]*struct 自动初始化创建对象/数组:

    https://goframe.org/util/gconv/struct

  • 新增 Strusts/StrctsDeep 方法,用于结构体数组的递归转换;

  • 新增 StructDeep 方法,用于对结构体对象的递归转换;

  • 新增 MapDeep 方法,用于对结构体属性的递归转换;

8、改进 ghttp 模块:

  • 改进 ghttp 模块的分组路由功能,完善逻辑处理细节,程序更加稳健;

  • 改进 ghttp.Request.Get*ToStruct 方法,支持 params/param/p 标签,支持结构体递归转换,并且支持 **struct 参数的对象自动初始化;

  • 改进 ghttp.CORSDefault 的跨域设置参数, AllowOrigin 参数调整为 * ;

9、改进 gvalid 数据校验模块:

  • 增加对校验标签 gvalid/valid/v 的支持;

  • 改进 CheckStruct 支持对结构体对象的递归校验:https://goframe.org/util/gvalid/checkstruct

10、改进 gtcp TCP通信模块:

  • 改进通信包协议设计,更加轻量级高效:

    https://goframe.org/net/gtcp/conn/pkg

  • 改进 TCP Server 增加对 TLS 的支持:

    https://goframe.org/net/gtcp/tls

  • 增加 Server.Cloce 服务端关闭方法;

11、改进 gproc 模块的通信数据结构,并使用 gtcp 的轻量级包协议重构消息发送逻辑;

12、改进 gqueue 模块增加数据同步缓冲机制,解决大数据量下的内存占用及延迟问题;

13、改进 gmlock 模块,使用 gmutex 模块替换内部的互斥锁,增加更多的操作方法;

14、改进 gaes 加密模块,增加 CBC 模式的加密/解密方法:

15、改进 garray.Range/SubSlice 方法,改进设计,提高性能;

16、改进 gjson/gparser 模块实现 MarshalJSON 接口以实现自定义的 JSON 数据格式转换;

17、改进 crypto 分类下模块的方法返回值,增加 error 错误变量返回,以保证更严谨的接口设计风格;

18、改进 gbase64 模块,输入输出类型发生改变,并增加多个相关方法;

19、改进 gflock 修改方法名 UnLock 为 Unlock ,新增 IsRLocked 方法;

20、新增 gfile.CopyFile/CopyDir 方法,用于文件及目录的复制;

21、改进 gjson/gparser/gvar/gcfg 模块增加更多的类型转换方法;

22、改进 gcache 模块,过期时间参数支持 time.Duration 类型;

23、新增 internal/structs 包,强大且便捷的结构体解析,并改进框架中所有涉及到结构体反射处理的模块;

24、改进 gbinary 增加封装方法对 BigEndian 的支持;

Bug Fix

  • 修复garray.Search返回值问题;

  • 修复garray.Contains, garray.New*ArrayFromCopy方法逻辑问题;

  • 修复gjson.Remove删除slice参数问题;

  • 修复gtree.AVLTree.Remove方法返回值问题;

  • 修复gqueue.Size不准确的大小问题;

  • 修复queue.Close问题;

  • 修复gcache.GetOrSetLockFunc当回调函数返回nil结果时的死锁问题;

  • 修复gfsnotify.Add方法默认递归监控添加失效问题;

  • 修复gdb.Model.Scan在某些参数类型下的失效问题;

注意事项

请注意以上粗体文字部分,如有使用,在您升级时可能会出现不兼容性。

GF(Go Frame)是一款模块化、高性能、生产级Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎等等,支持热重启、热更新、多域名、多端口、多服务、HTTPS、Rewrite等特性。

特点

  • 模块化、松耦合设计;

  • 模块丰富,开箱即用;

  • 详尽的开发文档及示例;

  • 完善的本地中文化支持;

  • 致力于项目的通用方案;

  • 更适合企业及团队使用;

  • 更多请查阅文档及源码;

安装

go get -u github.com/gogf/gf

或者 go.mod:

require github.com/gogf/gf latest

限制

golang版本 >= 1.10

架构

606a5356361e4956b75f498157a798cd.png

文档

开发文档:https://goframe.org

接口文档:https://godoc.org/github.com/gogf/gf

使用

package mainimport (    "github.com/gogf/gf/g"    "github.com/gogf/gf/g/net/ghttp")func main() {    s := g.Server()    s.BindHandler("/", func(r *ghttp.Request) {        r.Response.Write("Hello World")    })    s.Run()}

更多参考:https://goframe.org/start/index

原文地址:

https://www.oschina.net/news/108249/goframe-1-8-0-released

2e7bbdba68ee89ceedb30ed0d4f67655.png

c51bc321a606f4d7d433104f923e078a.png

4f87175d52b061010622a8463e4b4b82.gif

  • 2019年6月Github上最热门的Python开源项目

  • 迅雷对极速版开启强制X升级,网友提供禁升办法

  • 哈哈:180万程序员不知如何退出Vim编辑器...

*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

00aec397afd6ac2a3fd5efa7b0266e6c.png

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39715187/article/details/112099516
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-15 20:15:34
  • 阅读 ( 1176 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢