Golang 开发规范(用 golang 实现阿里的《JAVA 开发手册》)

编程规约

命名风格

  1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
    反例:_name / __name / $name / name_ / name$ / name__
  2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
    说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。
    正例:renminbi / alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
    反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3
  3. 【强制】公用的变量、类型、接口、结构、函数以及结构体的成员变量等命名使用 UpperCamelCase 风格,但以下情形例外:DO 等。
    正例:GolangStruct / UserDO / XmlService / TcpUdpDeal / TaPromotion
    反例:Golangstruct / UserDo / XMLService / TCPUDPDeal / TAPromotion
  4. 【强制】私有的变量、类型、接口、结构、函数以及参数名、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。
    正例: localValue / getHttpMessage() / inputUserId
  5. 【强制】常量命名命名使用 UpperCamelCase 风格,并使用 const 声明,力求语义表达完整清楚,不要嫌名长。
    正例:const StatusOK = 200
  6. 抽象结构命名使用 Abstract 或 Base 开头;
    异常类命名使用 Err 结尾;
    测试类命名以 Test 开头,以它要测试的函数的名称结尾。
    正例:ParamsErr := errors.New(“params err”)
  7. 接口命名规范一般使用 er 结尾:
    单个函数的接口名以“er”作为后缀,接口的实现则去掉 er;
    两个函数的接口名综合两个函数名,以 er 作为后缀,接口的实现则去掉 er ;
    三个以上函数的接口,抽象这个接口的功能,类似于结构体命名。
    正例:Writer / WriteReader / Ioer
  8. 数据和切片类型命名以 Arr 结尾,map 类型以 Map 结尾。相同功用的结构体可以根据功能采用相同的结尾,【强制】Api 请求以 Req 结尾,相应以 Res 结尾,数据结构体以 xxxModel 结尾,xxx即为数据表名。
    正例:var userArr [3]string / type LoginReq struct{} / type UserDO struct{}
  9. 返回结果主要为布尔类型的函数,函数名可以 is、has 等开头
  10. 【强制】工程名统一使用小写,单词之间使用 - 分割。包目录名一律使用小写,尽量采用一个单词命名,单词间不用符号分割,统一使用单数形式,但是结构体名如果有复数含义,结构体名可以使用复数形式。包目录下的包名( package namepackage ),如非 main 函数,和包目录名保持一直且单词间用 _ 分隔,测试文件以 _test 结尾。
    正例:db-utils / package db_utils / package db_utils_test
    反例:services
  11. 【强制】杜绝完全不规范的缩写,避免望文不知义,五个字母及以下单词不可缩写。
  12. 为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意。
    反例:var a int 的随意命名方式。
  13. 在常量与变量的命名时,表示类型的名词放在词尾,以提升辨识度。如规范【8】所示。
    正例:startTime / startDate
    反例:startedAt / startDt
  14. 如果模块、接口、类、方法使用了设计模式,在命名时需体现出具体模式。
    说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计理念。
  15. 【参考】各层命名规约:
    A) Service/DAO 层方法命名规
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
golang开发规范pdf是指一份关于使用Go语言进行开发规范的电子文档。这份规范的目的是为了提高团队开发效率、代码质量和维护性,确保项目的一致性和可扩展性。 在golang开发规范pdf中,通常会包含以下几个方面的内容: 1. 项目结构:定义项目的目录结构,包括如何组织代码文件、测试文件和配置文件等。这样可以使整个项目更加清晰、易于理解和维护。 2. 命名约定:定义变量、函数、类型和包等的命名规范。良好的命名规范可以增加代码的可读性,并且有助于其他开发人员更好地理解代码。 3. 代码风格: 指定代码缩进、换行、注释、命名等细节。统一的代码风格可以减少开发人员之间的沟通障碍,提高代码的可读性和可维护性。 4. 错误处理:明确规定如何处理错误,使用错误码还是异常处理,以及如何记录错误信息。规范的错误处理可以增加代码的健壮性,降低系统的崩溃风险。 5. 并发处理:定义并发编程的规范,包括使用goroutine、channel和锁等的最佳实践。良好的并发处理规范可以避免死锁和竞态条件等问题,提高系统的性能和稳定性。 6. 单元测试:指导如何编写单元测试,包括测试用例的组织方式、覆盖率要求以及测试结果的处理等。规范的单元测试有助于发现代码的潜在问题,并且可以提供一种自动化验证代码正确性的手段。 7. 文档编写:规范文档的编写方式,包括文档结构、格式规范和文档的更新机制等。清晰、详尽的文档可以减少沟通成本,提高项目的文档管理效率。 通过遵循golang开发规范pdf,开发人员可以更加高效、一致地进行开发,减少出错和重复的工作。此外,规范开发还有助于多人协作和后期维护,提高整个项目的质量和可持续性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值