美文网首页Golang开发
我的golang代码规范

我的golang代码规范

作者: CodePanda_Li | 来源:发表于2020-04-01 02:24 被阅读0次

俗话说的好,细节决定成败。Coding过程中的规范就是这种可以决定成败的细节,好的规范可以是代码的可读性和可维护性都得到极大的增强,下面是我个人在工作中对自己的要求和规范,主要遵循一致性的原则。

1、包(package)

1.1 包的命名

  • 全部小写。没有大写或下划线。
  • 简短而简洁。请记住,在每个使用的地方都完整标识了该名称。
  • 不用复数。例如net/url,而不是net/urls
  • 使用语义比较强的命名,而不要使用信息量不足,看不懂的命名。

1.2 包的 import 格式

对包的导入进行分组,标准库和第三方库

如:

import (
  "fmt"
  "os"

  "github.com/gobwas/ws"
  "golang.org/x/sync/errgroup"
)

2、函数

1.1 函数的命名

  • 语义明确(看到名字就能知道函数的作用和功能).
  • 驼峰式命名方式.(导出型的首字母必须大写).
  • 尽量使用动词或者动词短语.

1.2 函数的分组与顺序

  • 导出的函数先出现在文件中

  • 同一文件中的函数按照接受者分组

    type something struct{ ... }
    
    func Run()error{
      ...
      return nil
    }
    func newSomething() *something {
        return &something{}
    }
    
    func (s *something) Cost() {
      return calcCost(s.weights)
    }
    
    func (s *something) Stop() {...}
    
    func calcCost(n []int) int {...}
    

1.3 函数内部的规范

  • 减少嵌套

    for _, v := range data {
      if v.F1 != 1 {
        log.Printf("Invalid v: %v", v)
        continue
      }
    
      v = process(v)
      if err := v.Call(); err != nil {
        return err
      }
      v.Send()
    }
    

优先处理了错误和特殊情况,尽早的返回来减少嵌套

  • 函数内部变量设置明确的值,尽量使用短变量声明形式 (:=).
s  := "hello,world"
  • 函数内部尽量缩小变量的作用域
if err := ioutil.WriteFile(name, data, 0644); err != nil {
 return err
}//err变量只在这行代码中有效
  • 避免函数的参数语意不明

(未完待续...)

相关文章

  • 我的golang代码规范

    俗话说的好,细节决定成败。Coding过程中的规范就是这种可以决定成败的细节,好的规范可以是代码的可读性和可维护性...

  • golang 代码规范

    由 无闻 根据自身项目实战经验讨论总结出来的 Go 语言编码规范,在一定程度上与 Go 官方的标准库 Code R...

  • golang: if block ends with a ret

    golang中有一条代码规范检查: if block ends with a return statement, ...

  • Go 学习笔记 11 | Golang 接口详解

    一、Golang 接口 Golang 中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象来...

  • Golang 专栏

    简介 整理 Golang 相关文章,方便大家阅读。 目录 golang 编程规范 - 项目目录结构[https:/...

  • Golang 开发规范

    Golang 开发规范 <官方英文版> : https://github.com/golang/go/wiki/C...

  • golang处理web客户端提交的多个文件

    html代码 js代码 golang代码

  • golang学习资源

    • golang官方文档• golang官方指南• golang官方指南目录版• 怎样编写golang代码• 地道...

  • 在Android中引用golang编译的aar包

    gomobile是在安卓中使用golang的工程,既可以全部代码用golang,也可以引用部分golang的代码,...

  • 02、千锋代码学习

    课程代码按章节划分:代码 整个代码:CmsProject Golang - 100天从新手到大师:Golang-1...

网友评论

    本文标题:我的golang代码规范

    本文链接:https://www.haomeiwen.com/subject/pzwnuhtx.html