• 代码规范
    • 通用代码
    • C + + 和 Python
    • 文档
    • JavaScript
    • 命名相关

    代码规范

    这些是 Electron 编码风格指南。

    您可以运行 npm run lint 来显示 cpplinteslint 检测到的任何样式问题。

    通用代码

    • 用换行符结束文件。
    • 按照如下顺序排列 node 模块的 require 代码

      • 内置Node模块(如 path
      • 内置Electron模块(如 ipcapp
      • 本地模块(使用相对路径)
    • 按照如下顺序排列类的属性

      • Class methods and properties (methods starting with a @)
      • Instance methods and properties
    • 避免与平台相关的代码:

      • 使用 path.join() 来组织文件路径。
      • 请使用os.tmpdir()而不是/tmp来引用临时目录。
    • 使用 return 来明确的结束一个函数

      • 不是return nullreturn undefinednullundefined

    C + + 和 Python

    对于 C++ 和 Python, 我们遵循 Chromium 的编码风格. 你可以使用 clang-format 来自动格式化 C++ 代码. 你可以使用 script/cpplint.py 来检验文件是否符合要求。

    我们现在使用的 Python 版本是 Python 2.7。

    C++ 代码使用了大量 Chromium 的抽象和类型,因此建议您熟悉它们。 一个起步的好地方是 Chromium 的 重要的抽象概念和数据库结构 文档. 该文档提到一些特殊类型,范围类型(超出范围时自动释放其内存), 记录机制等。

    文档

    • 使用remark Markdown样式.你可以运行 npm run lint-docs 来保证你修改的文档格式正确。

    JavaScript

    • 书写 标准 JavaScript 样式
    • 文件名应使用 - 连接而不是 _, 例如. file-name.js 而不是 file_name.js, 因为在 github/atom中模块名通常是 module-name 形式. 此规则仅适用于 .js 文件。
    • 酌情使用更新的 ES6 / ES2015 语法

      • const 用于需要的和其他的常数
      • let 用于定义变量
      • Arrow functions 代替 function () { }
      • Template literals 而不是使用字符串连接符 +

    命名相关

    Electron API 使用与 Node.js 相同的大小写方案:

    • 当模块本身是class时, 比如 BrowserWindow, 使用 CamelCase.
    • 当模块是一组 API 时, 比如 globalShortcut时,使用 mixedCase
    • 当 API 是对象的属性时, 并且它复杂到足以成为一个单独的块, 比如 win.webContents, 使用 mixedCase.
    • 对于其他非模块API, 使用自然标题, 比如 <webview> TagProcess Object.当创建新的 API 时, 最好使用 getter 和 setter 而不是 jQuery 的一次性函数。 举个例子, .getText().setText(text) 优于 .text([text]). 这是一些相关的 讨论