golang语言规范

**Go **语言编码规范

一. 命令规范

1**、包命名:package**

保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。包名应该为小写单词,不要使用下划线或者混合大小写。

2**、文件命名**

尽量采取有意义的文件名,简短,有意义,应该为小写单词,使用下划线分隔各个单词。例:data_query.go

非单元测试文件不要以_test结尾,go编译器默认x_test.go为单元测试文件,不会进行编译。

3**、变量命令**

变量:采用驼峰法,通过首字母大小写来控制是否包外可见

常量:均需使用全部大写字母组成,并使用下划线分词
const API_VERSION=“1.1”

接口命名

  • 单个函数的接口名以"er"作为后缀,例如type Reader interface {…}

  • 两个函数的接口名综合两个函数名,例如type WriteFlusher interface {…}

  • 三个以上函数的接口名,类似于结构体名,例如type Car interface {…}

特殊名词的首字母缩写需要按照规范来,例如URLProxy或者urlProxy不要命名为UrlProxy。

二. 格式化

Goland 推荐使用插件 save actions,其他IDE 使用gofmt,goimports

三. 注释

多写关键函数的注释,活用**//TODO,//FIXME**

四. 包引入

1、如果你的包引入了三种类型的包,标准库包,程序内部包,第三方包,建议采用如下方式进行组织你的包

import (
    "encoding/json"
    "strings"

    "myproject/models"
    "myproject/controller"
    "myproject/utils"

    "github.com/astaxie/beego"
    "github.com/go-sql-driver/mysql"
)   

不同的类型采用空格分离,第一种实标准库,第二是项目包,第三是第三方包。

2、在项目中不要使用相对路径引入包,使用绝对路径引入包

3、不要使用 . 来省略包名引用

五.缩进

为了保证最小的代码缩进和代码可读性,有一些缩进的规范,如下所示

if err != nil {
   error
   handling
} else {
   normal code
}

正确的写法
if err != nil {
   error handling
   return 
}
normal code

六.其他
1、receiver命名最多2个字母,不能使用me或者self或者this,例如func (c *Client) GetUserName() string

2、每行代码长度最好不超过80个字符,如果超过建议换行

3、函数返回值采用返回"指针"类型而不是返回"值"类型(推荐但不强制

4、错误处理的原则是不能忽略任何error,不要使用"_"丢弃,必须全部处理。接收到错误,要么返回error给上层调用,要么使用log打印对应的error和warn信息(强制

5、没十分必要不能panic,进程开始的处理函数可以panic

6、任何一个goroutine都应该有recover来保护程序不会因为panic而crash,因为任何一个goroutine如果抛panic但没有recover整个程序会crash

7、注意闭包的使用,在循环中调用函数或者goroutine方法,一定要采用显示的变量调用,不要再闭包函数里面调用循环的参数

后续待补充中!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang语言在安全方面具有很多优势。首先,Golang拥有强大的类型系统和内存管理机制,使得代码更加健壮和安全。它通过严格的类型检查来避免类型错误,并使用垃圾收集器来管理内存,减少了内存泄漏和悬挂指针等问题。 其次,Golang提供了丰富的标准库,其中包含了许多用于安全开发的模块。例如,crypto包提供了各种加密算法和安全哈希函数;net/http包提供了安全的HTTP连接和处理功能,包括支持TLS/SSL的HTTPS通信等。这些标准库的使用方式和设计都经过了严谨的考虑,有助于开发人员编写出更加安全的代码。 此外,Golang还引入了goroutine和通道的概念,使得并发编程更加简单和安全。Goroutine是一种轻量级的并发处理机制,通过它可以并发执行多个任务而不需要手动管理线程池和锁。通道提供了安全地在不同的goroutine之间传递数据的机制,避免了共享内存带来的数据竞争和同步问题。 最后,Golang具有良好的错误处理机制,这有助于开发人员及时捕获和处理错误,从而提高程序的安全性。Golang鼓励使用多值返回的方式来传递函数执行过程中的错误信息,并提供了一组标准的错误类型和处理函数,使得错误处理更加规范和易于理解。 综上所述,Golang语言在类型安全、内存安全、安全库支持、并发安全和错误处理等方面都有着许多优势,可以帮助开发人员编写出更加安全可靠的软件代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值