跳到主要內容

程式碼風格

這些是在 Electron 中編寫程式碼的樣式指南。

您可以執行 npm run lint 來顯示 cpplinteslint 偵測到的任何樣式問題。

通用程式碼

  • 在檔案結尾加上新行。
  • 按照以下順序放置 require
    • 內建 Node 模組(例如 path
    • 內建 Electron 模組(例如 ipcapp
    • 本地模組(使用相對路徑)
  • 按照以下順序放置類別屬性
    • 類別方法和屬性(以 @ 開頭的方法)
    • 實例方法和屬性
  • 避免與平台相關的程式碼
    • 使用 path.join() 來連接檔案名稱。
    • 當您需要引用臨時目錄時,請使用 os.tmpdir() 而不是 /tmp
  • 在函式結尾明確回傳時,使用簡單的 return
    • 不要使用 return nullreturn undefinednullundefined

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 語法
    • 使用 const 來定義 require 和其他常數。如果值是原始值,請使用大寫命名 (例如 const NUMBER_OF_RETRIES = 5)。
    • 使用 let 來定義變數
    • 使用箭頭函式而不是 function () { }
    • 使用樣板字串而不是使用 + 進行字串連接

命名事物

Electron API 使用與 Node.js 相同的首字母大寫方案

  • 當模組本身是一個類別時,例如 BrowserWindow,使用 PascalCase
  • 當模組是一組 API 時,例如 globalShortcut,使用 camelCase
  • 當 API 是物件的屬性,並且複雜到足以單獨成章時,例如 win.webContents,使用 mixedCase
  • 對於其他非模組 API,使用自然的標題,例如 <webview> TagProcess Object

當建立新的 API 時,最好使用 getter 和 setter,而不是 jQuery 的單函式風格。例如,.getText().setText(text) 優於 .text([text])。這有一個討論