原文:https://github.com/electron/electron/blob/master/docs/development/coding-style.md
译者:Lin
这里有一些在Electron中的编码风格指导。
你可以运行npm run lint
来展示任何风格 to show any style issues detected by cpplint
和eslint
.
<h2 id="cpp-and-python">C++和Python</h2>
对于C++和Python,我们遵循Chromium的代码风格。你可以使用clang-format自动格式化C++代码。这里有一个脚本script/cpplint.py
来检查是否所有的文件都遵循。
Python的版本我们现在使用的是Python 2.7。
C++代码使用了大量的Chromium的抽象类,所以建议了解一下它们。一个好的开始是Chromium的Important Abstractions and Data Structures文档。这个文档中提到一些特殊的类型,作用域类型(当在作用域范围之外时自动释放内存),以及日志记录机制等。
<h2 id="javascript">JavaScript</h2>
- 写标准的JavaScript风格。
- 文件名字应该是使用
-
连在一起的而不是使用_
,例如,是file-name.js
而不是file_name.js
,因为在github/atom模块中名字通常是module-name
构成方式。这个规则只适用于.js
文件。 - 在适当的地方使用新的ES6/ES2015语法
-
const
使用在饮用和其他常量上 -
let
用来定义变量 -
Arrow functions
代替function () { }
-
Template literals
用来代替使用+
的字符串连接。
-
<h2 id="naming-things">命名方式</h2>
Electron接口使用和Node.js相同的命名方式:
- 当模块自己就是一个类时,例如
BrowserWindow
,则使用CamelCase
(驼峰命名法)。 - 当模块是一个接口的集合时,例如
globalShortcut
,则使用mixedCase
。 - 当接口是一个对象的属性,并且足够复杂到能够单独分出一章,例如
win.webContents
,则使用mixedCase
。 - 对于其他的模块接口,使用正常的标题,例如
<webview> Tag
或Process Object
。
当创建一个新的接口,最好使用getters和setters来代替jQuery的one-function风格。例如,.getText()
和.setText(text)
就比.text([text])
要好。这里有一个关于这个的讨论。