Google开源项目风格指南Nov18,2020
Google 开源项目风格指南 Nov 18, 2020
Contents1Google开源项目风格指南(中文版)13C++风格指南-内容目录22.10.靡页32.21.头文件52.3102.作用域2.43.类16242.54.函数2.6285.来自Google的奇技2.76.其他C++特性302.87.命名约定502.9558.注释2.109.格式622.117910.规则特例2.1211.结束语80813Objective-C风格指南-内容目录3.181Google Objective-C Style Guide中文版3.285留白和格式3.3命名893.4注释933.595Cocoa 和Objective-C特性3.6Cocoa模式106Python风格指南-内容目录10944.1靡页.1094.2背景1094.3110Python语言规范4.4Python风格规范1264.5150临别赠言i
Contents 1 Google 开源项目风格指南 (中文版) 1 2 C++ 风格指南 - 内容目录 3 2.1 0. 扉页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 1. 头文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 2. 作用域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 3. 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.5 4. 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.6 5. 来自 Google 的奇技 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7 6. 其他 C++ 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.8 7. 命名约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2.9 8. 注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.10 9. 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.11 10. 规则特例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.12 11. 结束语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3 Objective-C 风格指南 - 内容目录 81 3.1 Google Objective-C Style Guide 中文版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.2 留白和格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.3 命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.4 注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.5 Cocoa 和 Objective-C 特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 3.6 Cocoa 模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4 Python 风格指南 - 内容目录 109 4.1 扉页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.2 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.3 Python 语言规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.4 Python 风格规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.5 临别赠言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 i
Shell风格指南-内容目录15155.1靡页.1515.2背景1515.3.152Shell文件和解释器调用5.4环境.1535.5注释:.153格式5.6.1555.7特性及错误:?:1605.8命名约定.1655.9调用命令:.1685.10结论.1691716Javascript风格指南-内容目录1716.1背景。6.2Javascript语言规范.1716.3182Javascript风格规范i
5 Shell 风格指南 - 内容目录 151 5.1 扉页 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.2 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.3 Shell 文件和解释器调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 5.4 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.5 注释 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.6 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5.7 特性及错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 5.8 命名约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 5.9 调用命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.10 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 6 Javascript 风格指南 - 内容目录 171 6.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.2 Javascript 语言规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.3 Javascript 风格规范 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 ii
CHAPTER 1Google开源项目风格指南(中文版)·在线文档托管在ReadTheDocs:在线阅读最新版本·中文风格指南GitHub托管地址:zh-google-styleguide·离线文档下载地址:releaseNote:声明.本项目并非Google官方项目,而是由国内程序员凭热情创建和维护如果你关注的是Google官方英文版,请移步GoogleStyleGuide每个较大的开源项目都有自己的风格指南:关于如何为该项目编写代码的一系列约定(有时候会比较武断)。当所有代码均保持一致的风格,在理解大型代码库时更为轻松“风格”的含义涵盖范围广,从“变量使用驼峰格式(camelCase)”到“决不使用全局变量”再到“决不使用异常”。英文版项目维护的是在Google使用的编程风格指南.如果你正在修改的项目源自Google,你可能会被引导至英文版项目页面,以了解项目所使用的风格我们已经发布了五份中文版的风格指南:1.GoogleC++风格指南2.GoogleObjective-C风格指南3.GooglePython风格指南4.GoogleJSON风格指南5.GoogleShell风格指南中文版项目采用reStructuredText纯文本标记语法,并使用Sphinx生成HTML/CHM/PDF等文档格式.1
CHAPTER 1 Google 开源项目风格指南 (中文版) • 在线文档托管在 ReadTheDocs : 在线阅读最新版本 • 中文风格指南 GitHub 托管地址:zh-google-styleguide • 离线文档下载地址:release Note: 声明. 本项目并非 Google 官方项目, 而是由国内程序员凭热情创建和维护. 如果你关注的是 Google 官方英文版, 请移步 Google Style Guide 每个较大的开源项目都有自己的风格指南: 关于如何为该项目编写代码的一系列约定 (有时候会比较武 断). 当所有代码均保持一致的风格, 在理解大型代码库时更为轻松. “风格”的含义涵盖范围广, 从“变量使用驼峰格式 (camelCase)”到“决不使用全局变量”再到“决不使 用异常”. 英文版项目维护的是在 Google 使用的编程风格指南. 如果你正在修改的项目源自 Google, 你 可能会被引导至英文版项目页面, 以了解项目所使用的风格. 我们已经发布了五份 中文版的风格指南: 1. Google C++ 风格指南 2. Google Objective-C 风格指南 3. Google Python 风格指南 4. Google JSON 风格指南 5. Google Shell 风格指南 中文版项目采用 reStructuredText 纯文本标记语法, 并使用 Sphinx 生成 HTML / CHM / PDF 等文档 格式. 1
Google开源项目风格指南英文版项目还包含cpplint-一个用来帮助适应风格准则的工具,以及google-c-style.el,Google风·格的Emacs配置文件·另外,招募志愿者翻译JavaScriptStyleGuide以及XMLDocumentFormatStyleGuide,有意者请联系Yang.Y.2Chapter1.Google开源项目风格指南(中文版)
Google 开源项目风格指南 • 英文版项目还包含 cpplint - 一个用来帮助适应风格准则的工具, 以及 google-c-style.el, Google 风 格的 Emacs 配置文件. • 另外, 招募志愿者翻译 JavaScript Style Guide 以及 XML Document Format Style Guide, 有意者 请联系 Yang.Y. 2 Chapter 1. Google 开源项目风格指南 (中文版)