命名规则

    • 整个应用或包的主入口文件应当是 或与应用名称简写相同。例如:Gogs 的主入口文件名为 gogs.go
    • 常量均需使用全部大写字母组成,并使用下划线分词:

      1. const APP_VER = "0.7.0.1110 Beta"
    • 如果模块的功能较为复杂、常量名称容易混淆的情况下,为了更好地区分枚举类型,可以使用完整的前缀:

      1. type PullRequestStatus int
      2. const (
      3. PULL_REQUEST_STATUS_CHECKING
      4. PULL_REQUEST_STATUS_MERGEABLE
    • 变量命名基本上遵循相应的英文表达或简写。
    • 在相对简单的环境(对象数量少、针对性强)中,可以将一些名称由完整单词简写为单个字母,例如:
      • user 可以简写为 u
      • userID 可以简写 uid
    • 上条规则也适用于结构定义:

      1. // Webhook represents a web hook object.
      2. type Webhook struct {
      3. ID int64 `xorm:"pk autoincr"`
      4. RepoID int64
      5. OrgID int64
      6. ContentType HookContentType
      7. Secret string `xorm:"TEXT"`
      8. Events string `xorm:"TEXT"`
      9. *HookEvent `xorm:"-"`
      10. IsSSL bool `xorm:"is_ssl"`
      11. IsActive bool
      12. HookTaskType HookTaskType
      13. Meta string `xorm:"TEXT"` // store hook-specific attributes
      14. LastStatus HookStatus // Last delivery status
      15. Created time.Time `xorm:"CREATED"`
      16. Updated time.Time `xorm:"UPDATED"`
      17. }

    变量命名惯例

    • 如果变量为私有,且特有名词为首个单词,则使用小写,如 apiClient
    • 其它情况都应当使用该名词原有的写法,如 APIClient、、UserID

    下面列举了一些常见的特有名词: