GoFrame v2.5 版本發(fā)布,企業(yè)級(jí) Golang 開(kāi)發(fā)框架
大家好啊,GoFrame 框架今天發(fā)布了 v2.5.0 正式版本啦!????????
本次版本主要是對(duì)已有功能組件以及開(kāi)發(fā)工具上的改進(jìn)工作。其中,開(kāi)發(fā)工具新增了 gf gen ctrl 命令,以規(guī)范化定義、開(kāi)發(fā) API 接口,增加控制器、SDK 的代碼生成提高開(kāi)發(fā)效率,以解決 Golang 工程開(kāi)發(fā)中接口層面的規(guī)范和效率問(wèn)題,詳情請(qǐng)參考:接口規(guī)范 - gen ctrl[1]。其他變更內(nèi)容請(qǐng)參考以下 change log。Enjoy!????????????????
Github ChangeLog:https://github.com/gogf/gf/releases/tag/v2.5.0[2]
完整代碼變更: v2.4.0...v2.5.0[3],感謝本次所有的貢獻(xiàn)開(kāi)發(fā)者:
功能改進(jìn)
- gdb
改進(jìn) ORM SQL 日志記錄,操作的字段按照數(shù)據(jù)表字段定義順序進(jìn)行操作。
改進(jìn) HOOK 方法實(shí)現(xiàn),支持修改 in 參數(shù)的 Table 字段后修改執(zhí)行的表名。
新增 AllAndCount/ScanAndCount 方法,用于實(shí)現(xiàn)便捷的分頁(yè)查詢場(chǎng)景。
新增 Model.WhereOrNot/WhereOrPrefixNot 條件方法。
- gi18n
- 改進(jìn)支持中文(Unicode)作為轉(zhuǎn)譯的鍵名。
- gclient
- 新增 Discovery 鏈?zhǔn)讲僮鞣椒ǎ糜谠O(shè)置本次請(qǐng)求的服務(wù)發(fā)現(xiàn)組件。
- ghttp
- 改進(jìn)請(qǐng)求 Context 上下文處理,每次 Context 的變更將會(huì)影響底層的 http.Request 對(duì)象。以支持自定義 HTTP Handler 的數(shù)據(jù)交互場(chǎng)景。
- 新增 Endpoints 配置項(xiàng)支持,用于自定義 Server 的服務(wù)注冊(cè)發(fā)現(xiàn)地址,而可以使用當(dāng)前監(jiān)聽(tīng)的地址。
- goai
- 改進(jìn)參數(shù)校驗(yàn)識(shí)別,如果參數(shù)為必須參數(shù),則在 OpenAPIv3 結(jié)果中進(jìn)行標(biāo)記。
- gsel
- 修復(fù) RoundRobin 實(shí)現(xiàn)中 Endpoints 更新的鎖機(jī)制問(wèn)題。
- glog
- 新增 TimeFormat 配置,用于自定義日志輸出的時(shí)間格式:日志組件 - 配置管理[4]
- 改進(jìn) Rotation 實(shí)現(xiàn),支持短運(yùn)行程序的日志文件切分。
- gtag
- 新增 GetGlobalEnums 方法,用于獲取全局注冊(cè)的枚舉類型。
- gutil
- 新增 DumpJson 方法,用于將任意類型變量按照 JSON 格式化打印到終端,便于人工閱讀。
- gvalid
- 新增 enums 校驗(yàn)規(guī)則,用于實(shí)現(xiàn)枚舉類型的自動(dòng)識(shí)別和校驗(yàn):數(shù)據(jù)校驗(yàn) - 校驗(yàn)規(guī)則[5]
社區(qū)組件
- 修復(fù) contrib/registry/polaris 組件在多個(gè)服務(wù)端時(shí)的負(fù)載均衡問(wèn)題。
- 改進(jìn) contrib/drivers/pgsql 在 TableFields 返回的 Index 字段序號(hào)統(tǒng)一從 0 開(kāi)始。
- 改進(jìn) contrib/nosql/redis 新增用戶配置項(xiàng)支持。
- 改進(jìn) contrib/rpc/grpcx 組件,grpcx.Server 新增 Endpoints 配置項(xiàng)支持,用于自定義服務(wù)注冊(cè)發(fā)現(xiàn)的地址。
- 新增 contrib/sdk/httpclient 組件,用于本次版本新增的 gf gen ctrl 命令生成的 HTTP SDK 代碼文件依賴庫(kù)。
- 新增 contrib/trace/otlpgrpc 及 contrib/trace/otlphttp 組件,用以實(shí)現(xiàn)基于 OpenTelemetry 的鏈路跟蹤統(tǒng)一對(duì)接組件。
開(kāi)發(fā)工具
- 新增 gf gen ctrl 命令,用于編譯 api 定義目錄,自動(dòng)生成規(guī)范的 controller、HTTP SDK 代碼:接口規(guī)范 - gen ctrl[6]
- 改進(jìn) gf gen dao 命令,新增 TypeMapping 特性,開(kāi)發(fā)者可自定義數(shù)據(jù)表字段類型與生成的 Go 實(shí)體數(shù)據(jù)結(jié)構(gòu)屬性類型映射,并且可以方便引入第三方包類型(如 decimal 包以支持高精度類型):數(shù)據(jù)規(guī)范 - gen dao[7]
- 改進(jìn) gf gen enums 命令,其中的 Prefix 參數(shù)改為 Prefixes,以支持多個(gè)生成枚舉類型的包前綴指定:枚舉維護(hù) - gen enums[8]
- 改進(jìn) gf gen service 命令:
- 生成的 service 文件中,增加方法注釋生成。
- 當(dāng)生成的 service 文件中存在 import 沖突時(shí),自動(dòng)生成 import alias。
- 改進(jìn)命令行封裝,暴露 gfcmd.Command 類型,便于開(kāi)發(fā)者可以繼承擴(kuò)展自定義命令行功能。
- 改進(jìn) gf docker 命令,將構(gòu)建文件參數(shù)設(shè)置為非必須(考慮兼容),未來(lái)將會(huì)只用于 Docker 構(gòu)建,不再耦合二進(jìn)制構(gòu)建功能。如果有完整構(gòu)建需求,建議未來(lái)結(jié)合 gf build 功能共同使用。并更新項(xiàng)目工程模板的 make image 命令,使用 gf build+gf docker 命令實(shí)現(xiàn)。
- 改進(jìn) gf init 命令,修復(fù)在部分場(chǎng)景下初始化項(xiàng)目覆蓋已存在的.git/.gitignore 目錄及文件問(wèn)題或權(quán)限報(bào)錯(cuò)問(wèn)題。
- 改進(jìn) gf up 命令,修復(fù)在部分場(chǎng)景下的框架版本更新問(wèn)題,以及在 windows 系統(tǒng)下的下載安裝問(wèn)題。
- 改進(jìn) gf version 命令,修復(fù)在部分場(chǎng)景下的框架版本識(shí)別問(wèn)題。
- 修復(fù) gf gen pbentity 命令,生成的 proto 文件實(shí)體數(shù)據(jù)結(jié)構(gòu)的 float32/float64/[]byte 類型修改為 float/double/bytes 類型。
- 改進(jìn)開(kāi)發(fā)工具,部分命令可以不用顯示配置 importPrefix 參數(shù),如:gf gen dao/service
相關(guān)資料
[1]接口規(guī)范 - gen ctrl: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D93880327
[2]https://github.com/gogf/gf/releases/tag/v2.5.0: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fgogf%2Fgf%2Freleases%2Ftag%2Fv2.5.0
[3]v2.4.0...v2.5.0: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgithub.com%2Fgogf%2Fgf%2Fcompare%2Fv2.4.0...v2.5.0
[4]日志組件 - 配置管理: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D1114388
[5]數(shù)據(jù)校驗(yàn) - 校驗(yàn)規(guī)則: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D1114367
[6]接口規(guī)范 - gen ctrl: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D93880327
[7]數(shù)據(jù)規(guī)范 - gen dao: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D3673173
[8]枚舉維護(hù) - gen enums: https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fgoframe.org%2Fpages%2Fviewpage.action%3FpageId%3D86187843本文轉(zhuǎn)載自微信公眾號(hào)「 程序員升級(jí)打怪之旅」,作者「王中陽(yáng)Go」,可以通過(guò)以下二維碼關(guān)注。
轉(zhuǎn)載本文請(qǐng)聯(lián)系「 程序員升級(jí)打怪之旅」公眾號(hào)。