W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們?cè)跇I(yè)務(wù)項(xiàng)目中,經(jīng)常會(huì)遇到以下痛點(diǎn)。
為了方便接口出錯(cuò)時(shí)定位問(wèn)題,代碼中隨處可見(jiàn)的日志打樁,并將其看做是一件理所當(dāng)然的事,影響著后續(xù)項(xiàng)目維護(hù)的思路。
如下,當(dāng)?shù)讓映霈F(xiàn)?error
?級(jí)別的錯(cuò)誤時(shí),在頂層看到的就一個(gè)錯(cuò)誤信息,請(qǐng)問(wèn)如何排查?
不僅僅是第三方組件,連標(biāo)準(zhǔn)庫(kù)所有方法返回的?error
?都不帶有堆棧,這對(duì)業(yè)務(wù)層統(tǒng)一錯(cuò)誤處理造成了很大的挑戰(zhàn)。幾乎所有業(yè)務(wù)層代碼調(diào)用返回的錯(cuò)誤,都需要使用類似于?Wrap
?方法再包裹一層,以便于業(yè)務(wù)層自己可以實(shí)現(xiàn)錯(cuò)誤堆棧返回。這樣的維護(hù)成本比較大,幾乎只能靠?CodeReview
?來(lái)人肉保障,一不小心可能會(huì)漏掉?Wrap
?處理。
錯(cuò)誤處理的第三方組件也比較多,如何選擇?甚至業(yè)務(wù)項(xiàng)目往往也想自己再封裝一層,進(jìn)一步提高錯(cuò)誤處理組件的維護(hù)成本。
?GoFrame
?框架提供了業(yè)內(nèi)功能最強(qiáng)大的錯(cuò)誤處理組件,并且該組件也是框架內(nèi)部廣泛使用的錯(cuò)誤組件,降低業(yè)務(wù)團(tuán)隊(duì)的選擇成本。
?GoFrame
?框架提供了強(qiáng)大的工程設(shè)計(jì)規(guī)范,其中包含了必要的統(tǒng)一的錯(cuò)誤處理方案。按照統(tǒng)一框架的工程設(shè)計(jì),一些通用性的痛點(diǎn)已通過(guò)組件、工具的方式得以解決,使得業(yè)務(wù)團(tuán)隊(duì)能夠?qū)⒕劢褂跇I(yè)務(wù)本身,開(kāi)發(fā)將會(huì)事半功倍。
在統(tǒng)一的錯(cuò)誤處理方案下,項(xiàng)目中所有的方法調(diào)用將會(huì)以?error
?返回值作為執(zhí)行成功與否的依據(jù)。如果?error
?不為?nil
?時(shí),及時(shí)返回,并將其層層往上傳遞,在最頂層統(tǒng)一做錯(cuò)誤處理。并且,在框架的關(guān)鍵組件已經(jīng)提供了默認(rèn)的錯(cuò)誤處理邏輯。
?GoFrame
?框架所有組件的?error
?返回對(duì)象均帶有錯(cuò)誤堆棧!
這是一件很難做到的事情,因?yàn)榭蚣芴峁┑慕M件幾乎能夠覆蓋了大部分業(yè)務(wù)項(xiàng)目的所有需求,但是框架確實(shí)做到了。雖然框架在這塊投入的成本比較大,但卻是一次性投入、長(zhǎng)期收益的事情。這也就意味著,如果業(yè)務(wù)項(xiàng)目在統(tǒng)一的?GoFrame
?基礎(chǔ)框架下,錯(cuò)誤處理將會(huì)更加簡(jiǎn)便,錯(cuò)誤堆棧丟失的風(fēng)險(xiǎn)得到了極大的降低,項(xiàng)目將會(huì)更加穩(wěn)健、易于快速排錯(cuò)。
在框架的關(guān)鍵組件中,提供了對(duì)錯(cuò)誤堆棧打印的默認(rèn)處理,以提高易用性,簡(jiǎn)化使用者負(fù)擔(dān)。這些關(guān)鍵的組件是程序的出口,如?HTTP/GRPC Server
?、?Command
?命令行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: