Стиль кода
Это руководство по стилю кодирования для 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])
. См. обсуждение этой темы здесь.