Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Golang命名规范和开发规范

Golang命名规范和开发规范

作者头像
rectinajh
发布于 2019-12-20 02:45:36
发布于 2019-12-20 02:45:36
7.1K00
代码可运行
举报
运行总次数:0
代码可运行

----目录----

命名

文件命名

文件命名一律采用小写,不用驼峰式,尽量见名思义,看见文件名就可以知道这个文件下的大概内容。 其中测试文件以test.go结尾,除测试文件外,命名不出现

例子:

stringutil.go, stringutil_test.go

包名package

包名用小写,使用短命名,尽量和标准库不要冲突。 包名统一使用单数形式。

变量

变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写。

例子:

apiClient、URLString

常量

同变量规则,力求语义表达完整清楚,不要嫌名字长。 如果模块复杂,为避免混淆,可按功能统一定义在package下的一个文件中。

接口

单个函数的接口名以 er 为后缀

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type Reader interface {
    Read(p []byte) (n int, err error)
}

两个函数的接口名综合两个函数名,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type WriteFlusher interface {
    Write([]byte) (int, error)
    Flush() error
}

三个以上函数的接口名类似于结构体名,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type Car interface {
    Start() 
    Stop()
    Drive()
}

结构体

结构体名应该是名词或名词短语,如Account,Book,避免使用Manager这样的。 如果该数据结构需要序列化,如json, 则首字母大写, 包括里面的字段。

方法

方法名应该是动词或动词短语,采用驼峰式。将功能及必要的参数体现在名字中, 不要嫌长, 如updateById,getUserInfo.

如果是结构体方法,那么 Receiver 的名称应该缩写,一般使用一个或者两个字符作为 Receiver 的名称。如果 Receiver 是指针, 那么统一使用p。 如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func (f foo) method() {
    ...
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func (p *foo) method() {
    ...
}

对于Receiver命名应该统一, 要么都使用值, 要么都用指针。

注释

每个包都应该有一个包注释,位于 package 之前。如果同一个包有多个文件,只需要在一个文件中编写即可;如果你想在每个文件中的头部加上注释,需要在版权注释和 Package前面加一个空行,否则版权注释会作为Package的注释。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package net

每个以大写字母开头(即可以导出)的方法应该有注释,且以该函数名开头。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Get 会响应对应路由转发过来的 get 请求
func (c *Controller) Get() {
    ...
}

大写字母开头的方法以为着是可供调用的公共方法,如果你的方法想只在本包内掉用,请以小写字母开发。如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func (c *Controller) curl() {
    ...
}

注释应该用一个完整的句子,注释的第一个单词应该是要注释的指示符,以便在 godoc 中容易查找。

注释应该以一个句点 . 结束。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
详细介绍 Go 语言的命名规范,包括标识符、包名、变量命名、函数命名等
在进行 Go 语言编程时,良好的命名规范能够提高代码的可读性和可维护性。Go 语言官方提供了一套清晰简洁的命名规范,旨在帮助开发者编写出优雅、一致的代码。本文将详细介绍 Go 语言的命名规范,包括标识符、包名、变量命名、函数命名等方面。
网络技术联盟站
2023/07/03
3K0
详细介绍 Go 语言的命名规范,包括标识符、包名、变量命名、函数命名等
java教程系列三:Java 命名规范
Java命名规范是一种约定俗称的准则,应用程序开发者应遵循这些规范来在整个应用程序中编写可读的代码。如果团队不遵循这些规范,他们可能会编写出难以阅读和理解的程序代码。
java干货
2021/02/19
7160
java教程系列三:Java 命名规范
Java开发都需要参考的一份命名规范
每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能。所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对Java领域相关命名进行整理和总结,仅供参考。
蒋老湿
2020/01/03
4.3K0
Java命名规范
简洁清爽的代码风格应该是大多数工程师所期待的。在工作中笔者常常因为起名字而纠结,命名已经成为我工作中的拦路虎,夸张点可以说是编程5分钟,命名两小时!
Erwin
2021/01/29
1.5K0
参与国际化项目一定要遵循的java命名规范
笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错。那究竟是为什么呢?我经过仔细的研究,发现他们都有一个共同点,就是命名规范不太严谨。我对这些在应聘远程项目第一关就被筛选掉了的程序员做了一个问卷调查:你都知道哪些java命名规范?最终结果显示:
字母哥博客
2020/09/23
3400
Go语言项目命名规范(2023年最新版)
在 Go 语言中,良好的命名规范是构建清晰、可读和可维护代码的关键。本指南旨在帮助你制定一致的命名规范,使你的 Go 项目更加整洁和易于理解。
小锟哥哥
2023/11/24
3.1K0
Go语言项目命名规范(2023年最新版)
C语言命名规范
C是一门朴素的语言,你使用的命名也应该这样。然而,当面对复杂情况时就有些棘手,给全局变量取一个描述性的名字是必要的。把一个全局函数叫做“foo”是一种目光短浅的行为。全局函数也一样,如果你有一个统计当前用户个数的函数,应当把它命名为“count_active_user()”或者简单点些的类似名称,不应该命名为“cntusr()”。1.三种流行的命名法则目前,业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法。驼峰命令法。正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字,其实我们工作比较常用的就是驼峰命令法。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:printEmployeePaychecks();
老九学堂-小师弟
2019/09/19
2.8K0
Java中的命名规则
在查找java命名规则时,未在国内相关网站查找到较为完整的文章,这是一篇国外程序开发人员写的java命名规则的文章,原文是英文写的,为了便于阅读,遂翻译为汉语,以便帮助国内开发者有所了解。
愷龍
2022/09/26
1.1K0
第11节 编码规范
命名是代码规范中很重要的一部分,统一的命名规则有利于提高的代码的可读性,好的命名仅仅通过命名就可以获取到足够多的信息。
小尘哥
2019/05/28
5750
C# 命名规则以及常见的编程命名规则
在 .NET 平台和 C# 开发中,遵循一致的命名规则是确保代码可读性、可维护性和团队协作效率的关键。
郑子铭
2025/03/17
2790
C# 命名规则以及常见的编程命名规则
技术规范(2): 后端技术开发规范
PEP8 规范: https://www.python.org/dev/peps/pep-0008/
机械视角
2020/03/17
1.1K0
Go语言开发规范指南
鲲志说
2025/04/07
690
史上最全的Java命名规范!告别编码5分钟,命名2小时?
每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能。所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对 Java 领域相关命名进行整理和总结,仅供参考。
用户7886150
2021/02/01
4.1K0
滚雪球学Java(05):了解Java编程的基础:关键字、标识符和命名规范
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2024/04/23
1690
滚雪球学Java(05):了解Java编程的基础:关键字、标识符和命名规范
图书借阅系统开发笔记
​ 决定开发选题,开发一个图书借阅系统。一开始还不知道要开发哪些内容,数据表的设计也是一塌糊涂,很多东西都没有考虑到,导致后期修改表结构。
Qiuner
2024/07/19
1170
变量命名规范
Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。 (一)Package(包)的命名 Package的名字应该都是由一个小写单词组成,例如com、xuetang9、company等。 (二)Class(类)的命名 Class的名字首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如:XueTang或ProNine。 (三)变量的命名 变量的名字可大小写混用,但首字符应小写。
老九君
2022/03/14
1.7K0
最全面的 Android 编码规范指南
这份文档参考了 Google Java 编程风格规范和 Google 官方 Android 编码风格规范。该文档仅供参考,只要形成一个统一的风格,见量知其意就可。
哲洛不闹
2018/09/18
1.8K0
最全面的 Android 编码规范指南
Java变量命名规范
Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。Package的名字应该都是由一个小写单词组成,例如com、xuetang9、company等。Class的名字首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如:XueTang或ProNine。变量的名字可大小写混用,但首字符应小写。词由大写字母分隔,限制用下划线,限制使用美元符($),因为这个字符对内部类有特殊的含义。示例如:idCard。Interface(接口)的命名。与Class(类)的命名类似。final static 变量(相当于常量)的命名。最终静态变量的名字应该都大写,并且指出完整含义,例如:final MAXUPLOADFILESIZE = 1024。方法名的第一个单词应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。参数的名字必须和变量的命名规范一致。使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:
老九学堂-小师弟
2019/09/20
2.5K0
Java 命名规范(非常全面)
最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的领导肯定会被骂(什么垃圾代码),下面分享一篇不错的规范文章
架构师修炼
2021/11/02
25.1K0
令人头疼的代码命名规范……
关于代码命名,我相信是经常困扰很多小伙伴的一个问题,尤其是对于强迫症晚期患者。怎么说呢,每次小编在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C++、Java、Python等主流语言上切换的强迫症来说,换个语言换种命名风格简直不要太混乱。
短短的路走走停停
2020/06/28
5.7K0
相关推荐
详细介绍 Go 语言的命名规范,包括标识符、包名、变量命名、函数命名等
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档