跳转至

编码风格

这些是 Electron 编码风格指南。

你可以运行 npm run lint 来显示由 cpplint 和 oxlint 检测到的任何风格问题。

通用代码

  • 以换行符结束文件。
  • 按以下顺序放置 require 语句:
  • Node 内置模块(如 path)
  • Electron 内置模块(如 ipc、app)
  • 本地模块(使用相对路径)
  • 按以下顺序放置类属性:
  • 类方法和属性(以 @ 开头的方法)
  • 实例方法和属性
  • 避免平台相关代码:
  • 使用 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 的重要抽象和数据结构文档。该文档涉及一些特殊类型、作用域类型(在超出作用域时自动释放内存)、日志记录机制等。

文档

你可以运行 npm run lint:docs 来确保你的文档更改格式正确。

JavaScript

  • 遵循 standard JavaScript 风格编写代码。
  • 文件名应使用 - 连接,而不是 _,例如 file-name.js 而不是 file_name.js,因为在 atom/atom 中,模块名称通常采用 module-name 形式。此规则仅适用于 .js 文件。
  • 在适当的地方使用更新的 ES6/ES2015 语法:
  • 对于 require 和其他常量使用 const。如果值是原始值,请使用大写命名(例如 const NUMBER_OF_RETRIES = 5)。
  • 使用 let 定义变量。
  • 使用箭头函数代替 function () { }。
  • 使用模板字符串代替使用 + 进行字符串拼接。

命名规范

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])。关于这一点有一场讨论。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron