欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言日志內聚復用及gjson踩坑記錄分享

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

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

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

統(tǒng)一日志格式

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

本地調試雖然爽了,但是上到測試環(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ū)分,方便定位問題。

內聚和復用

gf框架有一個設計:internal,即只允許內部調用的方法。

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

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

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

gjson

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

gjson 可以將json/xml/toml/等文件或者文件內容進行讀取,創(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"))
}

打印結果

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

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

相關文章

  • 如何在Go語言中靈活運用匿名函數(shù)和閉包

    如何在Go語言中靈活運用匿名函數(shù)和閉包

    這篇文章主要為大家介紹了如何在Go語言中靈活運用匿名函數(shù)和閉包實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • golang抓取網(wǎng)頁并分析頁面包含的鏈接方法

    golang抓取網(wǎng)頁并分析頁面包含的鏈接方法

    今天小編就為大家分享一篇golang抓取網(wǎng)頁并分析頁面包含的鏈接方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • go并發(fā)編程sync.Cond使用場景及實現(xiàn)原理

    go并發(fā)編程sync.Cond使用場景及實現(xiàn)原理

    這篇文章主要為大家介紹了go并發(fā)編程sync.Cond使用場景及實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • go實現(xiàn)整型的二進制轉化的方法

    go實現(xiàn)整型的二進制轉化的方法

    這篇文章主要介紹了go實現(xiàn)整型的二進制轉化的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • golang中channel+error來做異步錯誤處理有多香

    golang中channel+error來做異步錯誤處理有多香

    官方推薦golang中錯誤處理當做值處理, 既然是值那就可以在channel中傳輸,這篇文章主要介紹了golang 錯誤處理channel+error真的香,需要的朋友可以參考下
    2023-01-01
  • 一些關于Go程序錯誤處理的相關建議

    一些關于Go程序錯誤處理的相關建議

    錯誤處理在每個語言中都是一項重要內容,眾所周知,通常寫程序時遇到的分為異常與錯誤兩種,Golang中也不例外,這篇文章主要給大家介紹了一些關于Go程序錯誤處理的相關建議,需要的朋友可以參考下
    2021-09-09
  • golang實現(xiàn)微信支付v3版本的方法

    golang實現(xiàn)微信支付v3版本的方法

    這篇文章主要介紹了golang實現(xiàn)微信支付v3版本的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • golang實現(xiàn)redis的延時消息隊列功能示例

    golang實現(xiàn)redis的延時消息隊列功能示例

    這篇文章主要介紹了golang實現(xiàn)redis的延時消息隊列功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Golang連接池的幾種實現(xiàn)案例小結

    Golang連接池的幾種實現(xiàn)案例小結

    這篇文章主要介紹了Golang連接池的幾種實現(xiàn)案例小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 一文吃透Go的內置RPC原理

    一文吃透Go的內置RPC原理

    這篇文章主要為大家詳細介紹了Go語言中內置RPC的原理。說起?RPC?大家想到的一般是框架,Go?作為編程語言竟然還內置了?RPC,著實讓我有些吃鯨,本文就來一起聊聊吧
    2023-03-03

最新評論