Google 开源项目风格指南
内容目录 — Google 开源项目风格指南 (zh-google-styleguide.readthedocs.io)
Python 风格指南 - 内容目录
- 扉页
- 背景
- Python语言规范
- Lint
- 导入
- 包
- 异常
- 全局变量
- 嵌套/局部/内部类和函数
- 推导式和生成式
- 默认迭代器和操作符
- 生成器
- Lambda函数
- 条件表达式
- 默认参数值
- 特性 (properties)
- True/False的求值
- 词法作用域(Lexical Scoping, 又名静态作用域)
- 函数与方法装饰器
- 线程
- 威力过大的特性
- 现代python: from __future__ imports
- 代码类型注释
- Python风格规范
- 分号
- 行宽
- 括号
- 缩进
- 序列的尾部要添加逗号吗?
- Shebang行
- 注释和文档字符串 (docstring)
- 标点符号、拼写和语法
- 字符串
- 文件、套接字 (socket) 和类似的有状态资源
- TODO (待办) 注释
- 导入 (import) 语句的格式
- 语句
- 访问器 (getter) 和设置器 (setter)
- 命名
- 主程序
- 函数长度
- 类型注解 (type annotation)
- 临别赠言
Shell 风格指南 - 内容目录
Contents
- Shell 风格指南 - 内容目录
- 扉页
- 背景
- 使用哪一种Shell
- 什么时候使用Shell
- Shell文件和解释器调用
- 文件扩展名
- SUID / SGID
- 环境
- STDOUT vs STDERR
- 注释
- 文件头
- 功能注释
- 实现部分的注释
- TODO注释
- 格式
- 缩进
- 行的长度和长字符串
- 管道
- 循环
- case语句
- 变量扩展
- 引用
- 特性及错误
- 命令替换
- test,[和[[
- 测试字符串
- 文件名的通配符扩展
- Eval
- 管道导向while循环
- 命名约定
- 函数名
- 变量名
- 常量和环境变量名
- 源文件名
- 只读变量
- 使用本地变量
- 函数位置
- 主函数main
- 调用命令
- 检查返回值
- 内建命令和外部命令
- 结论
C++ 风格指南 - 内容目录
Contents
- C++ 风格指南 - 内容目录
- 0. 扉页
- 0.1 译者前言
- 0.2 背景
- 1. 头文件
- 1.1. Self-contained 头文件
- 1.2. #define 保护
- 1.3. 前置声明
- 1.4. 内联函数
- 1.5.
#include
的路径及顺序 - 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 2. 作用域
- 2.1. 命名空间
- 2.2. 匿名命名空间和静态变量
- 2.3. 非成员函数、静态成员函数和全局函数
- 2.4. 局部变量
- 2.5. 静态和全局变量
- 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 3. 类
- 3.1. 构造函数的职责
- 3.2. 隐式类型转换
- 3.3. 可拷贝类型和可移动类型
- 3.4. 结构体 VS. 类
- 3.5. 继承
- 3.6. 多重继承
- 3.7. 接口
- 3.8. 运算符重载
- 3.9. 存取控制
- 3.10. 声明顺序
- 译者 (YuleFox) 笔记
- 4. 函数
- 4.1. 输入和输出
- 4.2. 编写简短函数
- 4.3. 引用参数
- 4.4. 函数重载
- 4.5. 缺省参数
- 4.6. 函数返回类型后置语法
- 5. 来自 Google 的奇技
- 5.1. 所有权与智能指针
- 5.2. Cpplint
- 译者(acgtyrant)笔记
- 6. 其他 C++ 特性
- 6.1. 引用参数
- 6.2. 右值引用
- 6.3. 函数重载
- 6.4. 缺省参数
- 6.5. 变长数组和 alloca()
- 6.6. 友元
- 6.7. 异常
- 6.8. 运行时类型识别
- 6.9. 类型转换
- 6.10. 流
- 6.11. 前置自增和自减
- 6.12.
const
用法 - 6.13.
constexpr
用法 - 6.14. 整型
- 6.15. 64 位下的可移植性
- 6.16. 预处理宏
- 6.17. 0,
nullptr
和NULL
- 6.18. sizeof
- 6.19. auto
- 6.20. 列表初始化
- 6.21. Lambda 表达式
- 6.22. 模板编程
- 6.23. Boost 库
- 6.24. C++11
- 译者(acgtyrant)笔记
- 7. 命名约定
- 7.1. 通用命名规则
- 7.2. 文件命名
- 7.3. 类型命名
- 7.4. 变量命名
- 普通变量命名
- 类数据成员
- 结构体变量
- 7.5. 常量命名
- 7.6. 函数命名
- 7.7. 命名空间命名
- 7.8. 枚举命名
- 7.9. 宏命名
- 7.10. 命名规则的特例
- 译者(acgtyrant)笔记
- 8. 注释
- 8.1. 注释风格
- 8.2. 文件注释
- 法律公告和作者信息
- 文件内容
- 8.3. 类注释
- 8.4. 函数注释
- 函数声明
- 函数定义
- 8.5. 变量注释
- 类数据成员
- 全局变量
- 8.6. 实现注释
- 代码前注释
- 行注释
- 函数参数注释
- 不允许的行为
- 8.7. 标点, 拼写和语法
- 8.8. TODO 注释
- 8.9. 弃用注释
- 译者 (YuleFox) 笔记
- 9. 格式
- 9.1. 行长度
- 9.2. 非 ASCII 字符
- 9.3. 空格还是制表位
- 9.4. 函数声明与定义
- 9.5. Lambda 表达式
- 9.6. 函数调用
- 9.7. 列表初始化格式
- 9.8. 条件语句
- 9.9. 循环和开关选择语句
- 9.10. 指针和引用表达式
- 9.11. 布尔表达式
- 9.12. 函数返回值
- 9.13. 变量及数组初始化
- 9.14. 预处理指令
- 9.15. 类格式
- 9.16. 构造函数初始值列表
- 9.17. 命名空间格式化
- 9.18. 水平留白
- 通用
- 循环和条件语句
- 操作符
- 模板和转换
- 9.19. 垂直留白
- 译者 (YuleFox) 笔记
- 译者(acgtyrant)笔记
- 10. 规则特例
- 10.1. 现有不合规范的代码
- 10.2. Windows 代码
- 11. 结束语