Стиль кода
Это руководство по стилю кодирования для Electron.
Вы пожете запустить npm run lint
для того чтобы получить список проблемных мест по стилю кода, найденных с помощью cpplint
и eslint
.
Оформление кода
- Завершайте все файлы переводом строки.
- Размещайте require в следующем порядке:
- Встроенные модули Node (такие как
path
) - Встроенные модули Electron (такие как
ipc
,app
) - Локальные модули (используя относительные пути)
- Встроенные модули Node (такие как
- Размещайте свойства классов в следующем порядке:
- Методы и свойства класса (названия методов должны начинаться с
@
) - Методы и свойства объект а (экземпляра)
- Методы и свойства класса (названия методов должны начинаться с
- Избегайте платформенно-зависимого кода:
- Используйте
path.join()
для конкатенации имен файлов. - Используйте
os.tmpdir()
вместо/tmp
когда нужно сослаться на каталог для временных файлов.
- Используйте
- Using a plain
return
when returning explicitly at the end of a function.- Не
return null
, неreturn undefined
, неnull
илиundefined
- Не
C++ и Python
For C++ and Python, we follow Chromium's Coding Style. There is also a script script/cpplint.py
to check whether all files conform.
Версией Python, которую мы используем в настоящее время, является Python 3.9.
Код C++ использует многожество абстракций и типов Chrome, поэтому рекомендуется ознакомиться с ними. Хорошее место чтобы начать это Important Abstractions and Data Structures из документации по Chromium. Документ упоминает некоторые специальные типы, областные типы (которые автоматическ и освобождают используемую ими память при выходе из области), механизмы логгирования и т. д.
Документация
- Используйте стиль разметки remark.
Вы можете выполнить команду npm run lint-docs
чтобы убедиться, что ваши изменения документации корректно отформатированы.
JavaScript
- Пишите в стиле стандартном для JavaScript.
- File names should be concatenated with
-
instead of_
, e.g.file-name.js
rather thanfile_name.js
, because in atom/atom module names are usually in themodule-name
form. Это правило применяется только к.js
-файлам. - Используйте новый синтаксис ES6/ES2015 там, где это уместно
const
для requires и прочих постоянных значений. Если значение примитивно, используйте имя в верхнем регистре (например,const NUMBER_OF_RETRIES = 5
).let
для определения переменных- Стрелочные функции вместо
function () { }
- Используйте шаблоны литералов вместо конкатенации строк с использованием
+
Именование сущностей
Electron APIs использует ту же схему капитализации, что и Node.js:
- Если сам модуль является классом, напр.
BrowserWindow
, используйтеPascalCase
. - Если модуль является набором API, напр.
globalShortcut
, используйтеcamelCase
. - Когда API это свойство объекта, и оно обладает достаточной сложностью для помещения в отдельную главу, как например
win.webContents
, используйтеmixedCase
. - Для всех других не модульных API используйте естественные названия, напр.
Tag
илиProcess Object
.
При создании новых API рекомендуется использовать getters и setters вместо одной функции для доступа в типичном для jQuery стиле. Например, .getText()
и .setText(text)
более предпочтительны, чем .text([text])
. См. обсуждение этой темы здесь.