首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Uber Go语言规范

Uber公司推出的Go语言规范,建议没看过的同学看一遍,内容同步到了我的GitHub上,后续会补充一些case,感兴趣的同学可以点击原文查看 介绍 指南 退出一次 错误类型 错误包装 错误命名 指向interface...表驱动测试 功能选项 Linting 介绍 风格是管理我们代码的规范。...本指南的目的是通过详细描述在Uber编写Go代码的注意事项来管理这种复杂性。这些规则的存在是为了保持代码库的可管理性,同时还允许工程师有效地使用Go语言的特性。...避免使用内建命名 Go语言的spec中列举了一些内建命名,在你的Go程序中应该避免使用预声明的标识符; 根据上下文的不同,用预声明标识符命名变量可能会在当前作用域下覆盖官方标识符,让你的代码变得难以理解...相似声明放一组 Go语言支持组引用。 import ( "a" "b") 组声明同样适用于常量、变量和类型声明。

93320
您找到你想要的搜索结果了吗?
是的
没有找到

Go 语言命名规范整理

本文内容整理自《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》。 GO 语言语法简单,容易上手,相关的代码风格约束也相对较少。但查阅网络发现排在前几的都总结的不是很好。...正好前期阅读了 《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》 这本书,受益匪浅,特将其中命名规范部分做了整理分享出来,详情还是建议大家找来原书阅读。 下面是较重要的几条规范,推荐阅读。...语言的惯例是用“ 方法名+er ”命名; Go语言推荐尽量定义小接口,并通过接口组合的方式构建程序。...本文是对《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》书中命名规范部分做了整理总结,详细了解请查看原书内容。 本文内容仅用于学习之用,若有侵权请与我联系,立即删除。...参考文献# 《Go语言精进之路:从新手到高手的编程思想、方法和技巧1》 Naming Conventions in Go: Short but Descriptive 注:本作品采用 知识共享署名-非商业性使用

19130

Uber Go 语言编码规范

Uber Go 语言编码规范 样式 (style) 是支配我们代码的惯例。术语样式有点用词不当,因为这些约定涵盖的范围不限于由 gofmt 替我们处理的源文件格式。...本指南的目的是通过详细描述在 Uber 编写 Go 代码的注意事项来管理这种复杂性。这些规则的存在是为了使代码库易于管理,同时仍然允许工程师更有效地使用 Go 语言功能。...避免使用内置名称 Go语言规范language specification 概述了几个内置的, 不应在Go项目中使用的名称标识predeclared identifiers。...相似的声明放在一组 Go 语言支持将相似的声明放在一个组内。...编程模式 表驱动测试 当测试逻辑是重复的时候,通过 subtests 使用 table 驱动的方式编写 case 代码看上去会更简洁。

31820

C语言编程规范 clean code

参考该规范之前,希望您具有相应的C语言基础能力,而不是通过该文档来学习C语言。...了解C语言的ISO标准; 熟知C语言的基本语言特性; 了解C语言的标准库; 总体原则 代码需要在保证功能正确的前提下,满足可读、可维护、安全、可靠、可测试、高效、可移植的特征要求。...约定 规则:编程时必须遵守的约定 建议:编程时必须加以考虑的约定 无论是“规则”还是“建议”,都必须理解该条目这么规定的原因,并努力遵守。...本章从编程规范的角度总结了一些方法,可用于帮助合理规划头文件。 头文件职责 头文件是模块或文件的对外接口。 头文件中适合放置接口的声明,不适合放置实现(内联函数除外)。 头文件应当职责单一。...extern "C" 通常出现在 C,C++ 混合编程的情况下,在 extern "C" 中包含头文件,可能会导致被包含头文件的原有意图遭到破坏,比如链接规范被不正确地更改。

4.1K10

C语言编程规范 clean code

参考该规范之前,希望您具有相应的C语言基础能力,而不是通过该文档来学习C语言。...了解C语言的ISO标准; 熟知C语言的基本语言特性; 了解C语言的标准库; 总体原则 代码需要在保证功能正确的前提下,满足可读、可维护、安全、可靠、可测试、高效、可移植的特征要求。...约定 规则:编程时必须遵守的约定 建议:编程时必须加以考虑的约定 无论是“规则”还是“建议”,都必须理解该条目这么规定的原因,并努力遵守。...本章从编程规范的角度总结了一些方法,可用于帮助合理规划头文件。 头文件职责 头文件是模块或文件的对外接口。 头文件中适合放置接口的声明,不适合放置实现(内联函数除外)。 头文件应当职责单一。...extern "C" 通常出现在 C,C++ 混合编程的情况下,在 extern "C" 中包含头文件,可能会导致被包含头文件的原有意图遭到破坏,比如链接规范被不正确地更改。

5.3K10

Python语言编程规范与优化建议

代码任何一种语言都有一些约定俗成的编码规范,Python也不例外。Python非常重视代码的可读性,对代码布局和排版有更加严格的要求。...这里重点介绍Python社区对代码编写的一些共同的要求、规范和一些常用的代码优化建议,最好在开始编写第一段代码的时候就要遵循这些规范和建议。 (1)严格使用缩进来体现代码的逻辑从属关系。...按照这样的规范写出来的代码布局和排版比较松散,阅读起来更加轻松。...有很多成熟的工具可以检查Python代码的规范性,例如pep8、flake8等等。...也可以使用pip install pylint安装Python代码检查工具pylint,然后使用命令行工具pylint来检查程序的规范性,或者使用可视化工具pylint-gui来完成同样的任务。

1.2K40

【译】Go语言编程模式

声明:本文为InfoQ中文站特供稿件,首发地址为:Go语言编程模式 在2016年伦敦举办的QCon大会上,Peter Bourgon做了《六年Go语言设计经验》的报告,重点探讨了在使用Go进行开发时的编程模式和反模式...为了测试而设计:使用函数式编程风格——使用参数表明依赖关系、使用接口以及避免依赖全局状态。 依赖管理: 将所有依赖项都拷贝到项目的仓库中用于构建二进制代码。...这些建议已经被应用于开发Go Kit,一款用于构建微服务的分布式编程工具。...2009年以来,Bourgon在SoundCloud和Weaveworks两家公司都使用Go语言开发,开发了几款产品,包括:Roshi——一款基于时间序列的事件数据库,以及Go Kit。...2016年QCon大会上的《六年Go语言设计经验》视频将会在今年晚些时候对外公开。 查看英文原文:Programming Patterns in Go

82030

Go语言并发编程总结

这句风靡在Go社区的话,说的就是 goroutine中的 channel ....... 他在go并发编程中充当着 类型安全的管道作用。...14、Go的多核并行化编程 高性能并发编程 必须设置GOMAXPROCS 为最大核数目 这个值由runtime.NumCPU()获取 在执行一些昂贵的计算任务时, 我们希望能够尽量利用现代服务器普遍具备的多核特性来尽...语言defer关键字带来的优雅 18、全局唯一操作 sync.Once.Do() sync.atomic原子操作子包 对于从全局的角度只需要运行一次的代码,比如全局初始化操作,Go语言提供了一个...Go语言标准库为我们引入了Once类 型以解决这个问题。...这个机制比较轻巧地解决了使用其他语言时开发者不得不自行设计和实现这种Once效果的 难题,也是Go语言为并发性编程做了尽量多考虑的一种体现。

1.3K90

Go语言并发编程总结

这句风靡在Go社区的话,说的就是 goroutine中的 channel ……. 他在go并发编程中充当着 类型安全的管道作用。...14、Go的多核并行化编程 高性能并发编程 必须设置GOMAXPROCS 为最大核数目 这个值由runtime.NumCPU()获取 在执行一些昂贵的计算任务时, 我们希望能够尽量利用现代服务器普遍具备的多核特性来尽...语言defer关键字带来的优雅 18、全局唯一操作 sync.Once.Do() sync.atomic原子操作子包 对于从全局的角度只需要运行一次的代码,比如全局初始化操作,Go语言提供了一个...Go语言标准库为我们引入了Once类 型以解决这个问题。...这个机制比较轻巧地解决了使用其他语言时开发者不得不自行设计和实现这种Once效果的 难题,也是Go语言为并发性编程做了尽量多考虑的一种体现。

93640

Go语言并发编程总结

这句风靡在Go社区的话,说的就是 goroutine中的 channel ....... 他在go并发编程中充当着 类型安全的管道作用。...14、Go的多核并行化编程 高性能并发编程 必须设置GOMAXPROCS 为最大核数目 这个值由runtime.NumCPU()获取 在执行一些昂贵的计算任务时, 我们希望能够尽量利用现代服务器普遍具备的多核特性来尽...语言defer关键字带来的优雅 18、全局唯一操作 sync.Once.Do() sync.atomic原子操作子包 对于从全局的角度只需要运行一次的代码,比如全局初始化操作,Go语言提供了一个...Go语言标准库为我们引入了Once类 型以解决这个问题。...这个机制比较轻巧地解决了使用其他语言时开发者不得不自行设计和实现这种Once效果的 难题,也是Go语言为并发性编程做了尽量多考虑的一种体现。

1.3K90
领券