Go中的命名規范


1.命名規范

1.1 Go是一門區分大小寫的語言。

命名規則涉及變量、常量、全局函數、結構、接口、方法等的命名。 Go語言從語法層面進行了以下限定:任何需要對外暴露的名字必須以大寫字母開頭,不需要對外暴露的則應該以小寫字母開頭。

  1. 當命名(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Analysize,那么使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱為導出(像面向對象語言中的 public);
  2. 命名如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見並且可用的(像面向對象語言中的 private )
1.2 包名稱

保持package的名字和目錄保持一致,盡量采取有意義的包名,簡短,有意義,盡量和標准庫不要沖突。包名應該為小寫單詞,不要使用下划線或者混合大小寫。

package domain
package main
1.3 文件命名

盡量采取有意義的文件名,簡短,有意義,應該為小寫單詞,使用下划線分隔各個單詞。

approve_service.go
1.4 結構體命名
  • 采用駝峰命名法,首字母根據訪問控制大寫或者小寫

  • struct 申明和初始化格式采用多行,例如下面:

    type MainConfig struct {
        Port string `json:"port"`
        Address string `json:"address"`
    }
    config := MainConfig{"1234", "123.221.134"}
    
    
1.5 接口命名
  • 命名規則基本和上面的結構體類型

  • 單個函數的結構名以 “er” 作為后綴,例如 Reader , Writer 。

    type Reader interface {
            Read(p []byte) (n int, err error)
    }
    
1.6 變量命名

和結構體類似,變量名稱一般遵循駝峰法,首字母根據訪問控制原則大寫或者小寫,但遇到特有名詞時,需要遵循以下規則:

  • 如果變量為私有,且特有名詞為首個單詞,則使用小寫,如 appService
  • 若變量類型為 bool 類型,則名稱應以 Has, Is, Can 或 Allow 開頭
var isExist bool
var hasConflict bool
var canManage bool
var allowGitHook bool
1.7常量命名

常量均需使用全部大寫字母組成,並使用下划線分詞

const APP_URL = "https://www.baidu.com"

如果是枚舉類型的常量,需要先創建相應類型:

type Scheme string

const (
    HTTP  Scheme = "http"
    HTTPS Scheme = "https"
)

2. 錯誤處理

  • 錯誤處理的原則就是不能丟棄任何有返回err的調用,不要使用 _ 丟棄,必須全部處理。接收到錯誤,要么返回err,或者使用log記錄下來
  • 盡早return:一旦有錯誤發生,馬上返回
  • 盡量不要使用panic,除非你知道你在做什么
  • 錯誤描述如果是英文必須為小寫,不需要標點結尾
  • 采用獨立的錯誤流進行處理
// 錯誤寫法
if err != nil {
    // error handling
} else {
    // normal code
}

// 正確寫法
if err != nil {
    // error handling
    return // or continue, etc.
}
// normal code

3. 單元測試

單元測試文件名命名規范為 example_test.go 測試用例的函數名稱必須以 Test 開頭,例如:TestExample 每個重要的函數都要首先編寫測試用例,測試用例和正規代碼一起提交方便進行回歸測試 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM