编码风格
这是 Electron 中的编码风格指南。
您可以通过运行 npm run lint 来显示 cpplint 和 eslint 检测到的任何风格问题。
通用代码
- 文件末尾应留有换行符。
- 按照以下顺序放置 require 语句
- 内置 Node 模块(例如
path) - 内置 Electron 模块(例如
ipc,app) - 本地模块(使用相对路径)
- 内置 Node 模块(例如
- 按照以下顺序放置类属性
- 类方法和属性(以
@开头的方法) - 实例方法和属性
- 类方法和属性(以
- 避免平台相关的代码
- 使用
path.join()来拼接文件名。 - 当需要引用临时目录时,请使用
os.tmpdir()而不是/tmp。
- 使用
- 当函数末尾需要显式返回值时,使用简单的
return。- 不要使用
return null,return undefined,null或undefined。
- 不要使用
C++ 和 Python
对于 C++ 和 Python,我们遵循 Chromium 的 编码风格。还有一个脚本 script/cpplint.py 用于检查所有文件是否符合规范。
我们当前使用的 Python 版本是 Python 3.9。
C++ 代码大量使用了 Chromium 的抽象和类型,因此建议熟悉它们。一个好的起点是 Chromium 的 重要抽象和数据结构 文档。该文档提到了一些特殊类型、作用域类型(在离开作用域时自动释放内存)、日志机制等。
文档
- 使用 remark markdown 风格编写。
您可以运行 npm run lint:docs 来确保您的文档更改格式正确。
JavaScript
- 使用 standard JavaScript 风格编写。
- 文件名应使用
-连接而不是_,例如file-name.js而不是file_name.js,因为在 atom/atom 中,模块名称通常采用module-name的形式。此规则仅适用于.js文件。 - 在适当的情况下使用较新的 ES6/ES2015 语法
命名
Electron API 使用与 Node.js 相同的命名约定。
- 当模块本身是一个类时,例如
BrowserWindow,使用PascalCase。 - 当模块是一组 API 时,例如
globalShortcut,使用camelCase。 - 当 API 是对象的属性,并且它足够复杂以至于需要单独的章节时,例如
win.webContents,使用mixedCase。 - 对于其他非模块 API,使用自然语言标题,例如
<webview> Tag或Process Object。
在创建新 API 时,建议使用 getter 和 setter 而不是 jQuery 的单函数风格。例如,推荐使用 .getText() 和 .setText(text) 而不是 .text([text])。对此有一个 讨论。