程式碼風格
這些是在 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])
。這有一個討論。