go语言的代码规范

go语言的代码规范

为什么要有代码规范

1.团队多人开发项目,需要编码规范

  • 建立合理的规范,可以建立团队在技术上沟通的模式,更重要的是,还可从团队内部,重用已有的程序智慧,为成员提供了有高度的脚手架,避免成员个体在程序设计上特定弱点所带来的质量短板。

2.软件维护,需要编码规范

  • 一件软件的整个生命周期成本的80%用于维护,对于项目原作者几乎不可能终身维护项目,规范的编码项目,有助于减少后期的维护成本,以及项目的存活时间。

3.减少人与人之间的沟通成本,能提高代码质量

  • 理解并遵守相同编码规范的人,就像在讲同一种语言,沟通会快速而准确。而在发生编码风格冲突的时候,编码规范将会作为仲裁的最终依据,减少沟通的无效消耗。

4.优秀的工程师总能写出让能一眼读懂的代码

  • 遵守相同编码规范的代码,常常看起来就像是一个人写出来的一样。具有相同的风格是降低学习曲线的有效方式。当你新到一个具有编码规范的公司,读懂某几个函数或模块的写作方式后,常常代表你可以快速读懂相同规范的所有代码了。

代码规范

命名规范

命名是代码规范中很重要的一部分,统一的命名规则有利于提高代码的可读性,好的命名仅仅通过命名就可以获取足够的信息

  • 当命名(包括常量 类型 变量 函数名 结构字段等)以一个大写字母开头,那么这种形式的标识符就可以被外部的包所使用的,
  • 当命名如果是小写开头,则该标识符对外是不可见的,只允许在内部使用
  • 其实就是有点像PHP中我们在类中声明一个变量 会用到public和private一样,但是在PHP中需要你很明确的表示出来,在golang中使用大小写区分一下就可以了.可以说是很明智的一个改动

包名:package 目录名

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

文件名

尽量采取有意义的文件名,应该为小写单词,使用下划线分割各个单词,也称为蛇形命名法,比如 snake_case

结构体命名

  • 采用驼峰命名,首字母根据权限不同选择大小写,比如 UserName goodsName

接口命名

  • 接口的名称也是驼峰命名法,但是单个函数的结构名以er作为结尾,如Reader Writer

变量命名法

  • 一般遵循驼峰命名法,根据访问权限设置首字母大小写
  • 但是如遇特定名词,则全部大写比如 APIClient URLArray
  • 如果是bool类型的判断,则需要用 HasRecord CanGet等等

常量命名

  • 常量均需使用全部大写的字幕组成,并使用下划线分词,比如 API_VER FILE_PATH,如果是枚举类型,需要先创建相应的类型

注释

/**/是块注释 //是行注释

  • go自带包

  • 第三方的包

  • 自己的包

错误处理

  • 错误处理的原则就是不能丢弃任何有返回err的调用,不要使用_丢弃,接收到错误,要么返回err要么记录log
  • 尽早return 一旦有错误发生,马上返回
  • 尽量不要使用panic,除非你知道自己在做什么
  • 错误描述尽量是英文小写,不需要标点结尾
  • 采用独立的错误流进行处理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Go语言和Python语言在很多方面有着不同的特点和用途。以下是Go语言和Python语言之间的一些主要区别: 1. 性能:Go语言被设计为一种高性能的语言,具有较低的内存消耗和更高的执行速度。相比之下,Python是一种解释型语言,执行速度通常较慢。 2. 并发处理:Go语言内置了并发处理的机制,通过goroutine和channel的概念可以方便地编写并发程序。而Python在处理并发时,由于全局解释器锁(GIL)的存在,多线程并发执行时会受到限制。 3. 静态类型与动态类型:Go语言是一种静态类型语言,即变量的类型在编译时就需要确定,并且类型不可更改。而Python是一种动态类型语言,变量的类型在运行时才确定,并且可以随时更改。 4. 语法和风格:Go语言的语法相对严谨和简洁,强调代码的可读性和规范性。Python的语法设计更加灵活和简洁,强调代码的易读性和简洁性。 5. 生态系统:Python拥有庞大的生态系统,具有丰富的第三方库和工具支持,可以进行各种领域的开发。而Go语言的生态系统相对较小,但也在不断发展壮大。 6. 应用场景:Go语言适用于构建高性能的网络服务、分布式系统和容器编排工具等方面。Python适用于快速开发、数据处理、科学计算、机器学习和人工智能等方面。 综上所述,Go语言和Python语言的选择取决于具体的应用场景和需求。如果注重性能和并发处理,可以选择Go语言;如果注重开发效率和灵活性,可以选择Python语言

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老A技术联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值