新聞中心
一、項目錯誤處理痛點
我們在業(yè)務(wù)項目中,經(jīng)常會遇到以下痛點。

“專業(yè)、務(wù)實、高效、創(chuàng)新、把客戶的事當成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、軟件開發(fā)、設(shè)計服務(wù)業(yè)務(wù)。我們始終堅持以客戶需求為導(dǎo)向,結(jié)合用戶體驗與視覺傳達,提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!
1、缺少統(tǒng)一錯誤處理方案,代碼中隨處可見的日志打樁
為了方便接口出錯時定位問題,代碼中隨處可見的日志打樁,并將其看做是一件理所當然的事,影響著后續(xù)項目維護的思路。
2、請求執(zhí)行報錯后缺少錯誤堆棧,難以快速定位問題
如下,當?shù)讓映霈F(xiàn)?error?級別的錯誤時,在頂層看到的就一個錯誤信息,請問如何排查?
3、第三方組件執(zhí)行返回的錯誤,本身不帶有堆棧信息
不僅僅是第三方組件,連標準庫所有方法返回的?error?都不帶有堆棧,這對業(yè)務(wù)層統(tǒng)一錯誤處理造成了很大的挑戰(zhàn)。幾乎所有業(yè)務(wù)層代碼調(diào)用返回的錯誤,都需要使用類似于?Wrap?方法再包裹一層,以便于業(yè)務(wù)層自己可以實現(xiàn)錯誤堆棧返回。這樣的維護成本比較大,幾乎只能靠?CodeReview?來人肉保障,一不小心可能會漏掉?Wrap?處理。
4、錯誤組件多樣,自身項目往往還想當然再封裝一層
錯誤處理的第三方組件也比較多,如何選擇?甚至業(yè)務(wù)項目往往也想自己再封裝一層,進一步提高錯誤處理組件的維護成本。
二、框架全錯誤堆棧設(shè)計
1、統(tǒng)一錯誤組件
?GOFrame?框架提供了業(yè)內(nèi)功能最強大的錯誤處理組件,并且該組件也是框架內(nèi)部廣泛使用的錯誤組件,降低業(yè)務(wù)團隊的選擇成本。
2、統(tǒng)一錯誤處理方案
?GoFrame?框架提供了強大的工程設(shè)計規(guī)范,其中包含了必要的統(tǒng)一的錯誤處理方案。按照統(tǒng)一框架的工程設(shè)計,一些通用性的痛點已通過組件、工具的方式得以解決,使得業(yè)務(wù)團隊能夠?qū)⒕劢褂跇I(yè)務(wù)本身,開發(fā)將會事半功倍。
在統(tǒng)一的錯誤處理方案下,項目中所有的方法調(diào)用將會以?error?返回值作為執(zhí)行成功與否的依據(jù)。如果?error?不為?nil?時,及時返回,并將其層層往上傳遞,在最頂層統(tǒng)一做錯誤處理。并且,在框架的關(guān)鍵組件已經(jīng)提供了默認的錯誤處理邏輯。
3、全組件支持堆棧錯誤
?GoFrame?框架所有組件的?error?返回對象均帶有錯誤堆棧!
這是一件很難做到的事情,因為框架提供的組件幾乎能夠覆蓋了大部分業(yè)務(wù)項目的所有需求,但是框架確實做到了。雖然框架在這塊投入的成本比較大,但卻是一次性投入、長期收益的事情。這也就意味著,如果業(yè)務(wù)項目在統(tǒng)一的?GoFrame?基礎(chǔ)框架下,錯誤處理將會更加簡便,錯誤堆棧丟失的風(fēng)險得到了極大的降低,項目將會更加穩(wěn)健、易于快速排錯。
4、關(guān)鍵組件支持錯誤堆棧打印
在框架的關(guān)鍵組件中,提供了對錯誤堆棧打印的默認處理,以提高易用性,簡化使用者負擔。這些關(guān)鍵的組件是程序的出口,如?HTTP/GRPC Server?、?Command?命令行。
本文題目:創(chuàng)新互聯(lián)GoFrame教程:GoFrame框架設(shè)計-全錯誤堆棧設(shè)計
URL分享:http://fisionsoft.com.cn/article/djogdgh.html


咨詢
建站咨詢
