编码风格
这些是 Electron 编码风格指南。
您可以运行 npm run lint 来显示 cpplint 和eslint 检测到的任何样式问题。
通用代码
- 用换行符结束文件。
- 按照如下顺序排列 node 模块的 require 代码
- 内置Node模块(如
path) - 内置Electron模块(如
ipc、app) - 本地模块(使用相对路径)
- 内置Node模块(如
- 按照如下顺序排列类的属性
- 类方法和属性 (开始于
@的方法) - 实例方法和属性
- 类方法和属性 (开始于
- 避免与平台相关的代码:
- 使用
path.join()来组织文件路径。 - 请使用
os.tmpdir()而不是/tmp来引用临时目录。
- 使用
- 在函数结束有明确返回时,使用普通
return。- 不是
return null,return undefined,null或undefined
- 不是
C + + 和 Python
For C++ and Python, we follow Chromium's Coding Style. 你可以使用 script/cpplint.py 脚本来检查所有文件是否符合要求。
我们现在使用的 Python 版本是 Python 3.9。
C++ 代码使用了大量 Chromium 的抽象和类型,因此建议您熟悉它们。 一个起步的好地方是 Chromium 的 重要的抽象概念和数据库结构 文档. 该文档提到一些特殊类型,范围类型(超出范围时自动释放其内存), 记录机制等。
文档
- 使用remark Markdown样式.
你可以运行 npm run lint:docs 来保证你修改的文档格式正确。
JavaScript
- 书写 标准 JavaScript 样式
- File names should be concatenated with
-instead of_, e.g.file-name.jsrather thanfile_name.js, because in atom/atom module names are usually in themodule-nameform. 此规则仅适用于.js文件。 - 酌情使用更新的 ES6 / ES2015 语法
const用于需要的和其他的常数. 如果值是原始值,请使用大写命名(如const NUMBER_OF_RETRIES = 5)。let用于定义变量- Arrow functions 代替
function () { } - Template literals 而不是使用字符串连接符
+
命名相关
Electron API 使用与 Node.js 相同的大小写方案:
- 当模块本身是class时, 比如
BrowserWindow, 使用CamelCase. - 当模块是一组 API 时, 比如
globalShortcut时,使用mixedCase。 - 当 API 是对象的属性时, 并且它复杂到足以成为一个单独的块, 比如
win.webContents, 使用mixedCase. - 对于其他非模块API, 使用自然标题, 比如
<webview> Tag或Process Object.
当创建新的 API 时, 最好使用 getter 和 setter 而不是 jQuery 的一次性函数。 举个例子, .getText() 和 .setText(text) 优于 .text([text]). 这是一些相关的 讨论