Google 开源项目风格指南

sinferwu / 2023-08-01 / 原文

 

 

内容目录 — 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. 结束语