本篇內(nèi)容介紹了“goframe, beego, iris和gin的區(qū)別有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
公司主營(yíng)業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出靈川免費(fèi)做網(wǎng)站回饋大家。
指標(biāo) | 說(shuō)明 |
---|---|
基本介紹 | 來(lái)源各自官網(wǎng)。 |
模塊化設(shè)計(jì) | 是否支持模塊化插拔設(shè)計(jì)、模塊之間低耦合設(shè)計(jì),是否可以獨(dú)立使用其中某部分組件。 |
模塊完善度 | 框架提供的功能模塊是否豐富。模塊能否能覆蓋日常普遍的開(kāi)發(fā)需求。 |
使用易用性 | 易用性不僅僅是值框架好不好用,更多是團(tuán)隊(duì)能否在低成本下快速接入,長(zhǎng)期來(lái)看能否低成本維護(hù)。 |
文檔完善性 | 參考官網(wǎng)提供的介紹資料,包括但不限于:文檔、視頻、示例、案例資料。同時(shí),本地中文文檔支持也是參考項(xiàng)。 |
工程化完備 | 是否能夠快速接入項(xiàng)目開(kāi)發(fā),是否提供項(xiàng)目接入規(guī)范、設(shè)計(jì)模式、開(kāi)發(fā)工具鏈,文檔是否完善、源碼是否易讀、是否便于長(zhǎng)期維護(hù)。 |
開(kāi)發(fā)模式 | 框架適用的開(kāi)發(fā)模式,或者官方推薦的開(kāi)發(fā)模式。 |
工程規(guī)范 | 項(xiàng)目接入時(shí)的開(kāi)發(fā)規(guī)范,如目錄規(guī)范、設(shè)計(jì)規(guī)范、編碼規(guī)范、命名規(guī)范等。 |
社區(qū)活躍 | 官方與社區(qū)溝通是否便捷,問(wèn)題是否能夠快速解答,BUG是否能夠快速響應(yīng)處理。 |
開(kāi)發(fā)工具鏈 | 項(xiàng)目開(kāi)發(fā)時(shí)使用到的CLI開(kāi)發(fā)工具,如初始化項(xiàng)目、交叉編譯、代碼生成、swagger、熱編譯能力等等。 |
Web: 性能測(cè)試 | 來(lái)源第三方評(píng)測(cè) https://github.com/the-benchmarker/web-frameworks 。 |
Web: 路由沖突處理 | 存在路由注冊(cè)沖突時(shí)有無(wú)良好的解決方案,在業(yè)務(wù)項(xiàng)目開(kāi)發(fā)中比較常見(jiàn)。 |
Web: 域名支持 | Web路由是否支持域名綁定,甚至多域名的綁定。 |
Web: 文件服務(wù) | Web服務(wù)是否提供靜態(tài)資源的訪問(wèn)能力。 |
Web: 優(yōu)雅重啟/關(guān)閉 | Web服務(wù)在重啟時(shí)不會(huì)影響請(qǐng)求執(zhí)行,關(guān)閉時(shí)會(huì)等待正在執(zhí)行的請(qǐng)求處理完,新請(qǐng)求不再接入。 |
ORM | 框架是否自帶ORM組件,ORM組件是業(yè)務(wù)項(xiàng)目的核心組件。無(wú)論是自研還是通過(guò)第三方組件引入。 |
Session | 框架是否提供會(huì)話管理組件,無(wú)論是通用型Session組件,還是僅針對(duì)于Web服務(wù)的Session組件。 |
I18N支持 | 國(guó)際化組件支持(常用但非核心組件)。 |
配置管理 | 配置管理也是框架需要完備的核心組件能力。 |
日志組件 | 日志組件也是框架需要完備的核心組件能力。 |
數(shù)據(jù)校驗(yàn) | 數(shù)據(jù)校驗(yàn)也是框架需要完備的核心組件能力。 |
緩存管理 | 緩存管理也是框架需要完備的核心組件能力。無(wú)論是內(nèi)存還是redis,無(wú)論是自研還是通過(guò)第三方組件引入。 |
資源打包 | 支持將依賴(lài)的文件資源例如靜態(tài)資源、配置文件等固定文件編譯到可執(zhí)行文件中。框架組件自動(dòng)支持資源檢索。 |
鏈路跟蹤 | 框架是否具備分布式鏈路跟蹤能力,分布式跟蹤在微服務(wù)架構(gòu)中是必不可少的能力。 |
測(cè)試框架 | 框架是否支持單元測(cè)試接入,提供單元測(cè)試接入規(guī)范。無(wú)論是使用標(biāo)準(zhǔn)庫(kù)還是第三方測(cè)試框架。 |
突出優(yōu)點(diǎn) | 比較明顯的幾點(diǎn)優(yōu)點(diǎn)。 |
突出缺點(diǎn) | 比較明顯的幾點(diǎn)缺點(diǎn)。 |
以下部分對(duì)比參數(shù)涉及評(píng)分的部分,滿(mǎn)分總共按照10分為標(biāo)準(zhǔn)。
如果標(biāo)記為"-"的部分,表示不支持或者需要引入第三方插件支持。
以下特性如果官網(wǎng)提供文檔則直接提供文檔地址,找不到文檔但是筆者知道有就會(huì)簡(jiǎn)單標(biāo)注。
各個(gè)"框架"功能特性實(shí)現(xiàn)不同,在文檔、功能、易用性上存在較大差異,各位朋友可自行查閱鏈接。
| GoFrame | Beego | Iris | Gin |
---|---|---|---|---|
比較版本 | v1.15.2 | v1.12.3 | v12.0.2 | v1.6.3 |
項(xiàng)目類(lèi)型 | 開(kāi)源(國(guó)內(nèi)) | 開(kāi)源(國(guó)內(nèi)) | 開(kāi)源(海外) | 開(kāi)源(海外) |
開(kāi)源協(xié)議 | MIT | Apache-2 | BSD-3-Clause | MIT |
框架類(lèi)型 | 模塊化框架 | Web框架 | Web"框架" | Web"框架" |
基本介紹 | 工程完備、簡(jiǎn)單易用,模塊化、高質(zhì)量、高性能、企業(yè)級(jí)開(kāi)發(fā)框架。 | 最簡(jiǎn)單易用的企業(yè)級(jí)Go應(yīng)用開(kāi)發(fā)框架。 | 目前發(fā)展最快的Go Web框架。提供完整的MVC功能并且面向未來(lái)。 | 一個(gè)Go語(yǔ)言寫(xiě)的HTTP Web框架。它提供了Martini風(fēng)格的API并有更好的性能。 |
項(xiàng)目地址 | github.com/gogf/gf | github.com/beego/beego | github.com/kataras/iris | github.com/gin-gonic/gin |
官網(wǎng)地址 | goframe.org | beego.me | iris-go.com | gin-gonic.com |
模塊化設(shè)計(jì) | 是 | - | - | - |
模塊完善度 | 10 | 6 | 4 | 2 |
使用易用性 | 9 | 9 | 9 | 10 |
文檔完善度 | 10 | 8 | 6 | 4 |
工程化完備 | 10 | 8 | 5 | 1 |
社區(qū)活躍 | 9 | 10 | 9 | 10 |
開(kāi)發(fā)模式 | 模塊引入、三層架構(gòu)、MVC | MVC | MVC | - |
工程規(guī)范 | 分層設(shè)計(jì)、對(duì)象設(shè)計(jì) | 項(xiàng)目結(jié)構(gòu) | - | - |
開(kāi)發(fā)工具鏈 | gf工具鏈 | bee工具鏈 | - | - |
Web: 性能測(cè)試 | 10 | 8 | 8 | 9 |
Web: HTTPS | HTTPS & TLS | 支持 | CustomHttpConfiguration | 支持 |
Web: HTTP2 | - | - | 支持 | 支持 |
Web: WebSocket | WebSocket服務(wù) | 有 | 有 | - |
Web: 分組路由 | 路由注冊(cè)-分組路由 | Namespace | GroupingRoutes | 有 |
Web: 路由沖突處理 | 有 | - | 有 | - |
Web: 域名支持 | 域名綁定 | - | - | - |
Web: 文件服務(wù) | 靜態(tài)文件服務(wù) | 靜態(tài)文件處理 | ServingStaticFiles | 有 |
Web: 多端口/實(shí)例 | 多端口監(jiān)聽(tīng)、多實(shí)例監(jiān)聽(tīng) | - | RunMultipleServiceUsingIris | - |
Web: 優(yōu)雅重啟/關(guān)閉 | 平滑重啟特性 | 熱升級(jí) | GracefulShutdownOrRestart | GracefulRestartOrStop |
ORM | ORM文檔 | ORM文檔 | - | - |
Session | Session | Session | 有 | - |
I18N支持 | I18N | I18N | Localization | - |
模板引擎 | 模板引擎 | View設(shè)計(jì) | TemplateRendering | HtmlRendering |
配置管理 | 配置管理 | 參數(shù)配置 | - | CustomHttpConfig |
日志組件 | 日志組件 | Logging | - | - |
數(shù)據(jù)校驗(yàn) | 數(shù)據(jù)校驗(yàn) | 表單數(shù)據(jù)驗(yàn)證 | - | CustomValidators |
緩存管理 | 緩存管理 | Cache | - | - |
資源打包 | 資源管理 | bee工具bale命令 | - | - |
鏈路跟蹤 | 鏈路跟蹤 | - | - | - |
測(cè)試框架 | 單元測(cè)試 | - | Testing | Testing |
突出優(yōu)點(diǎn) | goframe主要以工程化和企業(yè)級(jí)方向?yàn)橹鳎貏e是模塊化設(shè)計(jì)和工程化設(shè)計(jì)思想非常棒。針對(duì)業(yè)務(wù)項(xiàng)目而言,提供了開(kāi)發(fā)規(guī)范、項(xiàng)目規(guī)范、命名規(guī)范、設(shè)計(jì)模式、開(kāi)發(fā)工具鏈、豐富的模塊、高質(zhì)量代碼和文檔,社區(qū)活躍。作者也是資深的PHP開(kāi)發(fā)者,PHP轉(zhuǎn)Go的小伙伴會(huì)倍感親切。 | beego開(kāi)源的比較早,最早的一款功能比較全面的Golang開(kāi)發(fā)框架,一直在Golang領(lǐng)域有著比較大的影響力,作者謝大多年組織著國(guó)內(nèi)影響力比較大GopherCN活動(dòng)。beego有著比較豐富的開(kāi)發(fā)模塊、開(kāi)箱即用,提供了基于MVC設(shè)計(jì)模式的項(xiàng)目結(jié)構(gòu)、開(kāi)發(fā)工具鏈,主要定位為Web開(kāi)發(fā),當(dāng)然也可以用于非Web項(xiàng)目開(kāi)發(fā)。 | iris主要側(cè)重于Web開(kāi)發(fā),提供了Web開(kāi)發(fā)的一系列功能組件,基于MVC開(kāi)發(fā)模式。iris這一年發(fā)展比較快,從一個(gè)Web Server的組件,也慢慢朝著beego的設(shè)計(jì)方向努力。 | gin專(zhuān)注于輕量級(jí)的Web Server,比較簡(jiǎn)單,易于理解,路由和中間件設(shè)計(jì)不錯(cuò),可以看做替代標(biāo)準(zhǔn)庫(kù)net/http.Server的路由加強(qiáng)版web server。獻(xiàn)給愛(ài)造輪子的朋友們。 |
突出缺點(diǎn) | 開(kāi)源時(shí)間較晚,推廣過(guò)于佛系,目前主要面向國(guó)內(nèi)用戶(hù),未推廣海外。 | 起步較早,自謝大創(chuàng)業(yè)后,近幾年發(fā)展較慢。非模塊化設(shè)計(jì),對(duì)第三方重量級(jí)模塊依賴(lài)較多。 | 號(hào)稱(chēng)性能最強(qiáng),結(jié)果平平。非模塊化設(shè)計(jì)。最近兩年開(kāi)始朝beego方向發(fā)展,但整體框架能力還不完備,需要加油。 | 功能簡(jiǎn)單易用,既是優(yōu)點(diǎn),也是缺點(diǎn)。 |
不同的需求場(chǎng)景,存在不同的選擇。選擇適合的工具,解決適合的問(wèn)題。
開(kāi)源不存在孰好孰壞之分,開(kāi)源作者能夠本著開(kāi)源精神給大家分享技術(shù)成果用以學(xué)習(xí)和使用,這本身就是一件非常不易并且值得稱(chēng)道的事情。
最后,筆者在這里跟大家分享一下自己所在團(tuán)隊(duì)的情況,以及在Golang
技術(shù)棧轉(zhuǎn)型過(guò)程中所走的彎路,希望能在框架選型這一環(huán)節(jié),能給大家作一定參考。
團(tuán)隊(duì)轉(zhuǎn)型Golang
技術(shù)棧的一些背景。主要幾點(diǎn):
團(tuán)隊(duì)后端最初的主要技術(shù)棧為PHP
,由于業(yè)務(wù)發(fā)展需要,進(jìn)行微服務(wù)改造。第一版微服務(wù)采用了PHP
+JsonRpc
的通信方式。
隨著項(xiàng)目增多,公司也組件了自己的DevOps
團(tuán)隊(duì),底層部署轉(zhuǎn)向了Docker
+Kubernetes
容器架構(gòu),并且引入了Golang
技術(shù)棧。
由于一些痛點(diǎn),通過(guò)一段時(shí)間對(duì)PHP
和Golang
的比較,團(tuán)隊(duì)決定快速轉(zhuǎn)型Golang
技術(shù)棧,主要痛點(diǎn)如下:
PHP
項(xiàng)目在業(yè)務(wù)復(fù)雜后、項(xiàng)目中后期的開(kāi)發(fā)和維護(hù)成本整體偏高。主要原因還是其過(guò)高的靈活性,非結(jié)構(gòu)化的變量設(shè)計(jì),參差不齊的開(kāi)發(fā)人員素質(zhì)。
上云容器化部署后,PHP
的DevOps
效率太低。復(fù)雜的Composer
版本管理,超大的Docker
鏡像大小,都影響著DevOps
的效率。相比較而言,Golang
效率極其高效。
JsonRpc
通信協(xié)議設(shè)計(jì)下,接口的擴(kuò)展性和靈活性很高,但服務(wù)之間很難快速確定接口的輸入與輸出定義,只能根據(jù)文檔和示例進(jìn)行對(duì)接和維護(hù)。由于代碼和文檔分離,大部分場(chǎng)景下接口文檔維護(hù)往往滯后于接口變化。隨著服務(wù)的不斷增加,非結(jié)構(gòu)化的通信協(xié)議管理使得服務(wù)接口的開(kāi)發(fā)和維護(hù)成本進(jìn)一步提高。
JsonRpc
的通信協(xié)議本質(zhì)基于HTTP1.x
+Json
,執(zhí)行效率過(guò)低,算不上真正的微服務(wù)通信協(xié)議,很難對(duì)接上主流的服務(wù)治理框架。相比較基于HTTP2.x
的gRPC
協(xié)議有著成熟微服務(wù)開(kāi)發(fā)框架和服務(wù)治理解決方案。
業(yè)務(wù)梳理的考量,PHP
到Golang
技術(shù)棧的遷移,其實(shí)也是一次技術(shù)重構(gòu)的契機(jī),在技術(shù)重構(gòu)的過(guò)程中也重新梳理業(yè)務(wù)系統(tǒng)設(shè)計(jì),償還技術(shù)債務(wù)。
Golang
確實(shí)足夠簡(jiǎn)單,相比較其他的解釋類(lèi)開(kāi)發(fā)語(yǔ)言,沒(méi)有過(guò)多的語(yǔ)法糖和語(yǔ)言特性,因此團(tuán)隊(duì)上手很快,并快速完成了一部分業(yè)務(wù)系統(tǒng)的技術(shù)重構(gòu)。但隨之而來(lái)的是更加嚴(yán)重的痛點(diǎn)。主要幾點(diǎn):
輪子過(guò)多:Golang
實(shí)在太簡(jiǎn)單了,以至于我們的團(tuán)隊(duì)成員爆發(fā)了壓抑許久的悶騷勁,充分發(fā)揮"造后不管"的造輪精神,開(kāi)發(fā)/封裝了許多大大小小的輪子。這些輪子均能滿(mǎn)足最基本的功能,例如:日志、配置、緩存等等。但輪子并不是實(shí)現(xiàn)一個(gè)基礎(chǔ)功能的半成品就了事,需要保證功能性、穩(wěn)定性、擴(kuò)展性和可維護(hù)性,要能結(jié)合更多生產(chǎn)實(shí)踐驗(yàn)證,更需要能夠長(zhǎng)期維護(hù)、持續(xù)進(jìn)行迭代改進(jìn)。否則,就是一堆大小不一的成人玩具。造輪一時(shí)爽,維護(hù)火葬場(chǎng)。直到現(xiàn)在,我們還在為分散在100
多個(gè)Golang
項(xiàng)目中的數(shù)十個(gè)成人玩具做大統(tǒng)一的事情痛苦不已。當(dāng)然,這個(gè)問(wèn)題也跟組織架構(gòu)和團(tuán)隊(duì)管理也有很大關(guān)系。
不成體系:
我們堅(jiān)信一個(gè)package
只做一件事情,并且特地使用單倉(cāng)庫(kù)包的形式進(jìn)行包管理,相當(dāng)于每個(gè)package
都是獨(dú)立維護(hù)的git
倉(cāng)庫(kù)。其實(shí)單倉(cāng)庫(kù)包和package
設(shè)計(jì)并不存在必要性,反而獨(dú)立的單倉(cāng)庫(kù)包提高了組件和框架的維護(hù)成本。
這種單倉(cāng)庫(kù)包設(shè)計(jì)難以形成技術(shù)體系,在團(tuán)隊(duì)技術(shù)管理上,難以形成統(tǒng)一的技術(shù)框架。單倉(cāng)包顯得很孤立,而一個(gè)技術(shù)體系的建立除了需要制定規(guī)范和標(biāo)準(zhǔn),更需要技術(shù)框架來(lái)準(zhǔn)確落地。一個(gè)成體系的、統(tǒng)一的技術(shù)框架,至少涉及到數(shù)十個(gè)基礎(chǔ)技術(shù)組件,不可能完全孤立設(shè)計(jì)。每一個(gè)package
的基礎(chǔ)功能實(shí)現(xiàn)都很簡(jiǎn)單,但是如何能夠統(tǒng)一組織在一起卻不是一件簡(jiǎn)單的事情,這需要團(tuán)隊(duì)的技術(shù)管理者需要有一定的技術(shù)底蘊(yùn)、格局和前瞻性,而不是和普通開(kāi)發(fā)者那樣眼界只能局限于package
本身。
這種孤立的單倉(cāng)庫(kù)包設(shè)計(jì),對(duì)于業(yè)務(wù)項(xiàng)目的規(guī)范化約束不強(qiáng),每一個(gè)組件都可以獨(dú)立替換,也至于痛點(diǎn)1的問(wèn)題越發(fā)嚴(yán)重(連日志組件都好幾套,雖然都滿(mǎn)足基本的日志規(guī)范設(shè)計(jì))。最終,我們最初引以為傲的單倉(cāng)庫(kù)包設(shè)計(jì),最終變成了一堆散沙。例如,就連需要增加標(biāo)準(zhǔn)化的鏈路跟蹤功能,由于單倉(cāng)庫(kù)包過(guò)于散亂和不統(tǒng)一,使得推進(jìn)改進(jìn)成本極其高昂。
除了使得技術(shù)體系難以建立,技術(shù)規(guī)范難以準(zhǔn)確落地之外,每個(gè)組件的易用性也設(shè)計(jì)得較差。舉個(gè)簡(jiǎn)單例子,我們的日志組件、緩存組件、數(shù)據(jù)庫(kù)組件、HTTP/gRPC Server組件都需要對(duì)接配置管理功能,單倉(cāng)包需要保證低耦合設(shè)計(jì),因此開(kāi)發(fā)者在使用的時(shí)候需要先手動(dòng)讀取配置、并轉(zhuǎn)換為目標(biāo)配置對(duì)象、并注入到對(duì)應(yīng)的組件初始化方法中,隨后才能將該對(duì)象運(yùn)用到業(yè)務(wù)邏輯中,若干個(gè)業(yè)務(wù)項(xiàng)目均是重復(fù)此步驟。其實(shí)goframe
在這塊的易用性設(shè)計(jì)就挺不錯(cuò),每個(gè)包當(dāng)然是獨(dú)立設(shè)計(jì)的,在統(tǒng)一的技術(shù)框架體系下,再獨(dú)立提供一個(gè)耦合的單例模塊將常用的對(duì)象進(jìn)行單例化封裝,自動(dòng)實(shí)現(xiàn)配置讀取、配置對(duì)象轉(zhuǎn)換、配置對(duì)象注入及組件對(duì)象初始化,開(kāi)發(fā)者僅需要調(diào)用一個(gè)單例方法即可。而這個(gè)常用單例模塊,成為了我們技術(shù)框架體系的一部分,極大地提高了業(yè)務(wù)項(xiàng)目的開(kāi)發(fā)和維護(hù)效率。
版本不一致:在業(yè)務(wù)項(xiàng)目不斷增多之后,輪子版本不一致性也越來(lái)越明顯。什么是版本不一致?舉個(gè)例子。我們有個(gè)輪子叫做httpClient
,總共發(fā)布了10
來(lái)個(gè)版本;我們總共有100
多個(gè)Golang
項(xiàng)目,幾乎每個(gè)版本都在使用。我們提交了一個(gè)bug fix
,卻難以讓所有項(xiàng)目都能更新。對(duì)其他的輪子也是類(lèi)似的情況,況且我們也有數(shù)十個(gè)各種輪子,被各個(gè)項(xiàng)目獨(dú)立使用中。
經(jīng)過(guò)反思總結(jié),總結(jié)了以下幾點(diǎn):
團(tuán)隊(duì)需要一個(gè)統(tǒng)一的技術(shù)框架,而不是東拼西湊的一堆單倉(cāng)庫(kù)包。
我們只需要維護(hù)一個(gè)框架的版本,而不是維護(hù)數(shù)十個(gè)單倉(cāng)庫(kù)包的版本。
框架的組件必須模塊化、低耦合設(shè)計(jì),保證內(nèi)部組件也可以獨(dú)立引用。
核心組件嚴(yán)格禁止單倉(cāng)庫(kù)包設(shè)計(jì),并且必須由框架統(tǒng)一維護(hù)。
走過(guò)這么多彎路之后,我們決心建立一套成體系的Golang
開(kāi)發(fā)框架。除了要求團(tuán)隊(duì)能夠快速學(xué)習(xí),維護(hù)成本低,并且我們最主要的訴求,是核心組件不能是半成品,框架必須是上過(guò)大規(guī)模生產(chǎn)驗(yàn)證的,穩(wěn)定和成熟的。隨著,我們重新對(duì)行業(yè)中流行的技術(shù)框架做了技術(shù)評(píng)估,包括上面說(shuō)的那些框架。原本的初衷是想將內(nèi)部的各個(gè)輪子統(tǒng)一做一個(gè)成體系的框架,在開(kāi)源項(xiàng)目中找一些有價(jià)值的參考。
后來(lái)找到了goframe
,仔細(xì)評(píng)估和學(xué)習(xí)了框架設(shè)計(jì),發(fā)現(xiàn)框架設(shè)計(jì)思想和我們的經(jīng)驗(yàn)總結(jié)如出一則!
這里不得不提一件尷尬的事情。其實(shí)最開(kāi)始轉(zhuǎn)Golang
之前(2019年中旬)也做過(guò)一些調(diào)研,那時(shí)goframe
版本還不高,并且我們負(fù)責(zé)評(píng)估的團(tuán)隊(duì)成員有一種先入為主的思想,看到模塊和文檔這么多,感覺(jué)應(yīng)該挺復(fù)雜,性能應(yīng)該不高,于是沒(méi)怎么看就PASS。后來(lái)選擇一些看起來(lái)簡(jiǎn)單的開(kāi)源輪子自己做了些二次封裝。
這次經(jīng)過(guò)一段時(shí)間的仔細(xì)調(diào)研和源碼學(xué)習(xí),得出一個(gè)結(jié)論,goframe
框架的框架架構(gòu)、模塊化和工程化設(shè)計(jì)思想非常棒,執(zhí)行效率很高,模塊不僅豐富,而且質(zhì)量之高,令人驚嘆至極!相比較我們之前寫(xiě)的那些半成品輪子,簡(jiǎn)直就是小巫見(jiàn)大巫。團(tuán)隊(duì)踩了一年多的坑,才發(fā)現(xiàn)團(tuán)隊(duì)確實(shí)需要一個(gè)統(tǒng)一的技術(shù)框架而不是一堆不成體系的輪子,其實(shí)人家早已給了一條明光大道,并且一直在前面默默努力。
經(jīng)過(guò)團(tuán)隊(duì)內(nèi)部的調(diào)研和討論,我們決定使用goframe
逐步重構(gòu)我們的業(yè)務(wù)項(xiàng)目。由于goframe
是模塊化設(shè)計(jì)的,因此我們也可以對(duì)一些模塊做必要的替換。重構(gòu)過(guò)程比較順利,基礎(chǔ)技術(shù)框架的重構(gòu)并不會(huì)對(duì)業(yè)務(wù)邏輯造成什么影響,反而通過(guò)goframe
的工程化思想和很棒的開(kāi)發(fā)工具鏈,在統(tǒng)一技術(shù)框架后,極大地提高了項(xiàng)目的開(kāi)發(fā)和維護(hù)效率,使得團(tuán)隊(duì)可以專(zhuān)心于業(yè)務(wù)開(kāi)發(fā),部門(mén)也陸續(xù)有了更多的產(chǎn)出。目前我們已經(jīng)有大部門(mén)業(yè)務(wù)項(xiàng)目專(zhuān)向了goframe
。平臺(tái)每日流量千萬(wàn)級(jí)別。
“goframe, beego, iris和gin的區(qū)別有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
新聞標(biāo)題:goframe,beego,iris和gin的區(qū)別有哪些
標(biāo)題網(wǎng)址:http://chinadenli.net/article6/gjdeig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、品牌網(wǎng)站制作、定制網(wǎng)站、外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)