程式碼風格
這些是 Electron 程式碼的風格指南。
您可以執行 npm run lint
來顯示 cpplint
和 eslint
偵測到的任何風格問題。
一般程式碼
- 檔案結尾需換行。
- 將 requires 依以下順序放置
- 內建 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])
更受歡迎。關於這一點,有一個討論。