メインコンテンツへスキップ

コーディングスタイル

これは、Electronでのコーディングに関するスタイルガイドラインです。

npm run lint を実行すると、cpplinteslint によって検出されたスタイル上の問題が表示されます。

一般的なコード

  • ファイルの末尾は改行で終わらせてください。
  • require は以下の順序で記述してください。
    • Nodeの組み込みモジュール(pathなど)
    • Electronの組み込みモジュール(ipcappなど)
    • ローカルモジュール(相対パスを使用)
  • クラスプロパティは以下の順序で記述してください。
    • クラスメソッドとプロパティ(@で始まるメソッド)
    • インスタンスメソッドとプロパティ
  • プラットフォーム依存のコードは避けてください。
    • ファイル名を連結するには path.join() を使用してください。
    • 一時ディレクトリを参照する必要がある場合は、/tmp ではなく os.tmpdir() を使用してください。
  • 関数の最後に明示的に return する場合は、単純な return を使用します。
    • return nullreturn undefinednull または undefined ではない

C++ と Python

C++とPythonについては、Chromiumのコーディングスタイルに従います。また、すべてのファイルが準拠しているかどうかを確認するスクリプト script/cpplint.py もあります。

現在使用しているPythonのバージョンはPython 3.9です。

C++コードはChromiumの抽象化と型を多く使用しているため、それらに精通しておくことをお勧めします。まず、Chromiumの重要な抽象化とデータ構造ドキュメントから始めるのが良いでしょう。このドキュメントでは、いくつかの特別な型、スコープ付き型(スコープ外に出ると自動的にメモリを解放する)、ロギングメカニズムなどについて言及しています。

ドキュメント

  • remarkマークダウンスタイルで記述してください。

ドキュメントの変更が正しくフォーマットされていることを確認するには、npm run lint:docs を実行できます。

JavaScript

  • standard JavaScript スタイルで記述してください。
  • ファイル名は _ ではなく - で連結する必要があります。例えば、file_name.js ではなく file-name.js です。なぜなら、atom/atomでは、モジュール名は通常 module-name 形式になっているからです。このルールは .js ファイルのみに適用されます。
  • 適切な場所では、より新しい ES6/ES2015 の構文を使用してください。
    • require とその他の定数には const を使用します。値がプリミティブな場合は、大文字の名前付けを使用します(例:const NUMBER_OF_RETRIES = 5)。
    • 変数を定義するには let を使用します。
    • function () { } の代わりに アロー関数 を使用します。
    • + を使用した文字列連結の代わりに テンプレートリテラル を使用します。

命名規則

Electron API は Node.js と同じ大文字小文字の区別スキームを使用しています。

  • モジュール自体が BrowserWindow のようなクラスである場合は、PascalCase を使用します。
  • モジュールが globalShortcut のような API のセットである場合は、camelCase を使用します。
  • API がオブジェクトのプロパティであり、win.webContents のように別の章で説明するのに十分なほど複雑な場合は、mixedCase を使用します。
  • その他のモジュールではない API については、<webview> TagProcess Object のように、自然なタイトルを使用します。

新しい API を作成する場合は、jQuery の1関数スタイルではなく、ゲッターとセッターを使用することが推奨されます。例えば、.text([text]) よりも .getText().setText(text) が推奨されます。これについては、議論があります。