最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言日志內(nèi)聚復用及gjson踩坑記錄分享

 更新時間:2022年06月11日 14:32:45   作者:王中陽Go  
這篇文章主要為大家介紹了Go語言日志內(nèi)聚復用及gjson踩坑記錄分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

今天分享一下最近遇到的坑:

以下代碼示例使用GoFrame框架,下文簡稱為gf框架。

統(tǒng)一日志格式

我有個不好的習慣,不管是之前開發(fā)PHP,還是現(xiàn)在開發(fā)GO,都習慣在開發(fā)過程中使用dump()打印數(shù)據(jù)進行調(diào)試。

本地調(diào)試雖然爽了,但是上到測試環(huán)境,甚至開發(fā)環(huán)境查不到日志,無法方便的定位問題可就傻了。

所以,我們需要養(yǎng)成關鍵步驟打印日志的好習慣,而且要統(tǒng)一日志格式。

打印日志

scm.Log.Info("測試的日志都打印在這里,res:%v", res)

封裝打印日志的方法

指定日志打印目錄

var Log = g.Log().Path(g.Log().GetPath() + "/scm")

通過gf提供的 g.log,再加上我們自己的封裝,就能把日志按功能模塊進行區(qū)分,方便定位問題。

內(nèi)聚和復用

gf框架有一個設計:internal,即只允許內(nèi)部調(diào)用的方法。

我覺得作者設計internal,一方面是處于安全考慮,另外一方面是處于高內(nèi)聚的考慮。

但是,也不要過度內(nèi)聚,我今天遇到的問題就是如何更好的實現(xiàn)代碼復用。

所以在項目中抽取了公共方法目錄shared,將原本寫在internal中的可以復用的邏輯進行遷移。

gjson

今天發(fā)現(xiàn)一個非常好用的工具類:gjson

gjson 可以將json/xml/toml/等文件或者文件內(nèi)容進行讀取,創(chuàng)建對象,通過get方法可以取到對象對應的值

package main
import (
   "fmt"
   "github.com/gogf/gf/encoding/gjson"
)

func main() {
   jsonContent := `{"k5":1}`
   jsonObj, err := gjson.LoadContent(jsonContent)
   if err != nil {
      panic(err)
   }
   fmt.Println(jsonObj.Get("k5"))
}

打印結(jié)果

最近又在解決很坑人的問題,一直沒能靜下心來,總是想著一定是哪些小問題導致的,總想著快速解決問題。但是這種謀求快速解決問題的心理導致一直浮在問題表面,沒有從根本上解決問題,反而一直在拖進度,讓進度越來越慢。

以上就是Go語言日志內(nèi)聚復用及gjson踩坑記錄分享的詳細內(nèi)容,更多關于Go日志內(nèi)聚復用gjson踩坑的資料請關注腳本之家其它相關文章!

相關文章

  • 一文帶你了解Golang中類型轉(zhuǎn)換庫cast的使用

    一文帶你了解Golang中類型轉(zhuǎn)換庫cast的使用

    你是否在使用 Go 的過程中因為類型轉(zhuǎn)換的繁瑣而苦惱過?你是否覺得 Go 語言中的類型斷言可能會 panic 而對自己寫的代碼有那么一點點不放心?本文就為大家推薦一個用于類型轉(zhuǎn)換的第三方庫 cast 絕對是一個值得嘗試的選擇
    2023-02-02
  • 提升編程技能:學習如何在Go語言中正確格式化時間

    提升編程技能:學習如何在Go語言中正確格式化時間

    想知道如何在Go語言中輕松地格式化時間嗎?別再浪費時間了!本文將帶你快速入門,讓你的代碼更加優(yōu)雅高效,快來學習吧!
    2024-01-01
  • golang中兩個協(xié)程交替打印數(shù)字和字母的實現(xiàn)

    golang中兩個協(xié)程交替打印數(shù)字和字母的實現(xiàn)

    這篇文章給大家介紹了golang中兩個協(xié)程交替打印數(shù)字和字母的實現(xiàn),文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • 一文詳解golang中的gmp模型

    一文詳解golang中的gmp模型

    這篇文章主要介紹了golang中的gmp模型的誕生、概念及調(diào)度講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Go語言中sync.Cond使用詳解

    Go語言中sync.Cond使用詳解

    本文主要介紹了Go語言中sync.Cond使用詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 淺談Golang是如何讀取文件內(nèi)容的(7種)

    淺談Golang是如何讀取文件內(nèi)容的(7種)

    這篇文章主要介紹了淺談Golang是如何讀取文件內(nèi)容的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • golang中make和new的區(qū)別示例詳解

    golang中make和new的區(qū)別示例詳解

    Go 語言中的 new 和 make 一直是新手比較容易混淆的東西,咋一看很相似。不過解釋兩者之間的不同也非常容易,下面這篇文章主要介紹了golang中make和new的區(qū)別,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • golang結(jié)合mysql設置最大連接數(shù)和最大空閑連接數(shù)

    golang結(jié)合mysql設置最大連接數(shù)和最大空閑連接數(shù)

    本文介紹golang?中連接MySQL時,如何設置最大連接數(shù)和最大空閑連接數(shù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 簡單了解Go語言中函數(shù)作為值以及函數(shù)閉包的使用

    簡單了解Go語言中函數(shù)作為值以及函數(shù)閉包的使用

    這篇文章主要介紹了簡單了解Go語言中函數(shù)作為值以及函數(shù)閉包的使用,是golang入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • Go?gRPC進階教程服務超時設置

    Go?gRPC進階教程服務超時設置

    這篇文章主要為大家介紹了Go?gRPC進階,gRPC請求的超時時間設置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

临西县| 嵊泗县| 兴业县| 阿勒泰市| 鸡泽县| 辉县市| 宣武区| 常德市| 平泉县| 丰顺县| 图们市| 加查县| 准格尔旗| 招远市| 容城县| 无棣县| 红安县| 咸丰县| 嘉善县| 普格县| 吉隆县| 黄浦区| 普洱| 宁南县| 阜康市| 柞水县| 易门县| 德化县| 利辛县| 合阳县| 海兴县| 乐山市| 临朐县| 通化市| 滕州市| 怀柔区| 张家港市| 收藏| 凤山县| 瑞金市| 师宗县|