mirror of
https://github.com/goldbergyoni/nodebestpractices.git
synced 2025-10-27 02:44:28 +08:00
Fix lint for russian
This commit is contained in:
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
# Добро пожаловать! 3 вещи, которые вы должны знать в первую очередь:
|
# Добро пожаловать! 3 вещи, которые вы должны знать в первую очередь
|
||||||
|
|
||||||
**1. На самом деле вы читаете десятки лучших статей Node.js -** этот репозиторий представляет собой краткий обзор и список наиболее популярных материалов по рекомендациям Node.js, а также материалов, написанных здесь соавторами.
|
**1. На самом деле вы читаете десятки лучших статей Node.js -** этот репозиторий представляет собой краткий обзор и список наиболее популярных материалов по рекомендациям Node.js, а также материалов, написанных здесь соавторами.
|
||||||
|
|
||||||
@ -46,13 +46,13 @@
|
|||||||
|
|
||||||
## Оглавление
|
## Оглавление
|
||||||
|
|
||||||
1. [Практики структуры проекта (5)](#1-Практики-структуры-проекта)
|
1. [Практики структуры проекта (5)](#1-Практики-структуры-проекта)
|
||||||
2. [Практики обработки ошибок (11)](#2-Практики-обработки-ошибок)
|
2. [Практики обработки ошибок (11)](#2-Практики-обработки-ошибок)
|
||||||
3. [Практики стиля кода (12)](#3-Практики-стиля-кода)
|
3. [Практики стиля кода (12)](#3-Практики-стиля-кода)
|
||||||
4. [Тестирование и общие методы контроля качества (12)](#4-Тестирование-и-общие-методы-контроля-качества)
|
4. [Тестирование и общие методы контроля качества (12)](#4-Тестирование-и-общие-методы-контроля-качества)
|
||||||
5. [Переход к производственным практикам (18)](#5-Переход-к-производственным-практикам)
|
5. [Переход к производственным практикам (18)](#5-Переход-к-производственным-практикам)
|
||||||
6. [Практики безопасности (25)](#6-Практики-безопасности)
|
6. [Практики безопасности (25)](#6-Практики-безопасности)
|
||||||
7. [Практики эффективности (2) (Работа в процессе️ ✍️)](#7-черновик-практики-эффективности)
|
7. [Практики эффективности (2) (Работа в процессе️ ✍️)](#7-черновик-практики-эффективности)
|
||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
@ -259,7 +259,7 @@
|
|||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
##! [✔] 3.3 Начинайте кодовый блок фигурными скобками на той же линии.
|
## ! [✔] 3.3 Начинайте кодовый блок фигурными скобками на той же линии
|
||||||
|
|
||||||
**TL;DR:** Открывающие фигурные скобки блока кода должны находиться на той же строке, что и оператор открытия.
|
**TL;DR:** Открывающие фигурные скобки блока кода должны находиться на той же строке, что и оператор открытия.
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ function someFunction()
|
|||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
##! [✔] 3.4 Разделяйте свои выражения правильно
|
## ! [✔] 3.4 Разделяйте свои выражения правильно
|
||||||
|
|
||||||
Независимо от того, используете ли вы точки с запятой или нет для разделения своих операторов, знание общих ошибок неправильных разрывов строк или автоматической вставки точек с запятой поможет вам устранить обычные синтаксические ошибки.
|
Независимо от того, используете ли вы точки с запятой или нет для разделения своих операторов, знание общих ошибок неправильных разрывов строк или автоматической вставки точек с запятой поможет вам устранить обычные синтаксические ошибки.
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ function someFunction()
|
|||||||
|
|
||||||
**Иначе:** Как видно из предыдущего раздела, интерпретатор JavaScript автоматически добавляет точку с запятой в конце оператора, если его нет, или считает, что оператор не завершен, где он должен, что может привести к нежелательным результатам. , Вы можете использовать присваивания и избегать немедленного вызова выражений функций для предотвращения большинства непредвиденных ошибок.
|
**Иначе:** Как видно из предыдущего раздела, интерпретатор JavaScript автоматически добавляет точку с запятой в конце оператора, если его нет, или считает, что оператор не завершен, где он должен, что может привести к нежелательным результатам. , Вы можете использовать присваивания и избегать немедленного вызова выражений функций для предотвращения большинства непредвиденных ошибок.
|
||||||
|
|
||||||
### Пример кода
|
### 3.4 Пример кода
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// Делайте так
|
// Делайте так
|
||||||
@ -342,7 +342,7 @@ const count = 2 // it tries to run 2(), but 2 is not a function
|
|||||||
|
|
||||||
**Иначе:** Javascript -- это единственный язык в мире, который позволяет напрямую вызывать конструктор ("Class") без его инициализации. Следовательно, классы и конструкторы функций должщны различаться, начинаясь с UpperCamelCase.
|
**Иначе:** Javascript -- это единственный язык в мире, который позволяет напрямую вызывать конструктор ("Class") без его инициализации. Следовательно, классы и конструкторы функций должщны различаться, начинаясь с UpperCamelCase.
|
||||||
|
|
||||||
### Пример кода
|
### 3.6 Пример кода
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// для класса мы используем UpperCamelCase
|
// для класса мы используем UpperCamelCase
|
||||||
@ -384,7 +384,7 @@ function doSomething() {}
|
|||||||
|
|
||||||
**Иначе:** Изменение внутренней структуры файлов или подписи может нарушить интерфейс с клиентами.
|
**Иначе:** Изменение внутренней структуры файлов или подписи может нарушить интерфейс с клиентами.
|
||||||
|
|
||||||
### Пример кода
|
### 3.9 Пример кода
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// Делайте так
|
// Делайте так
|
||||||
@ -404,7 +404,7 @@ module.exports.SMSNumberResolver = require("./SMSNumberResolver/SMSNumberResolve
|
|||||||
|
|
||||||
**Иначе:** Неравные переменные могут возвращать true при сравнении с оператором `==`.
|
**Иначе:** Неравные переменные могут возвращать true при сравнении с оператором `==`.
|
||||||
|
|
||||||
### Пример кода
|
### 3.10 Пример кода
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
"" == "0"; // false
|
"" == "0"; // false
|
||||||
@ -559,7 +559,7 @@ null == undefined; // true
|
|||||||
|
|
||||||
# `5. Переход к производственным практикам`
|
# `5. Переход к производственным практикам`
|
||||||
|
|
||||||
## ![✔] 5.1. Мониторинг!
|
## ![✔] 5.1. Мониторинг
|
||||||
|
|
||||||
**TL;DR:** Мониторинг -- это игра для выявления проблем до того, как их решат клиенты, очевидно, этому следует придать беспрецедентную важность. Рынок перегружен предложениями, поэтому подумайте о том, чтобы начать с определения основных метрик, которым вы должны следовать (мои предложения в подробностях), затем перейти к дополнительным необычным функциям и выбрать решение, которое помечает все поля. Нажмите "Подробнее" ниже для обзора решений.
|
**TL;DR:** Мониторинг -- это игра для выявления проблем до того, как их решат клиенты, очевидно, этому следует придать беспрецедентную важность. Рынок перегружен предложениями, поэтому подумайте о том, чтобы начать с определения основных метрик, которым вы должны следовать (мои предложения в подробностях), затем перейти к дополнительным необычным функциям и выбрать решение, которое помечает все поля. Нажмите "Подробнее" ниже для обзора решений.
|
||||||
|
|
||||||
@ -793,7 +793,7 @@ null == undefined; // true
|
|||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
##! [✔] 6.5. Сборник общих рекомендаций по безопасности
|
## ! [✔] 6.5. Сборник общих рекомендаций по безопасности
|
||||||
|
|
||||||
**TL;DR:** Это набор рекомендаций по безопасности, которые не связаны напрямую с Node.js -- реализация Node мало чем отличается от любого другого языка. Нажмите "Подробнее", чтобы просмотреть.
|
**TL;DR:** Это набор рекомендаций по безопасности, которые не связаны напрямую с Node.js -- реализация Node мало чем отличается от любого другого языка. Нажмите "Подробнее", чтобы просмотреть.
|
||||||
|
|
||||||
@ -837,7 +837,7 @@ null == undefined; // true
|
|||||||
|
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
|
|
||||||
##! [✔] 6.9. Экранируйте вывод HTML, JS и CSS
|
## ! [✔] 6.9. Экранируйте вывод HTML, JS и CSS
|
||||||
|
|
||||||
<a href="https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A7:XSS%20-green.svg" alt=""/></a>
|
<a href="https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A7:XSS%20-green.svg" alt=""/></a>
|
||||||
|
|
||||||
@ -916,7 +916,7 @@ null == undefined; // true
|
|||||||
|
|
||||||
<a href="https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A7:XSS%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Top_10-2017_A1-Injection" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A1:Injection%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A4:External%20Entities%20-green.svg" alt=""/></a>
|
<a href="https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A7:XSS%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Top_10-2017_A1-Injection" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A1:Injection%20-green.svg" alt=""/></a> <a href="https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A4:External%20Entities%20-green.svg" alt=""/></a>
|
||||||
|
|
||||||
**TL;DR:** `eval` -- это зло, поскольку оно позволяет выполнять пользовательский код JavaScript во время выполнения. Это не только проблема производительности, но и важная проблема безопасности из-за вредоносного кода JavaScript, который может быть получен из пользовательского ввода. Другой языковой особенностью, которую следует избегать, является конструктор `new Function`. `setTimeout` и` setInterval` также никогда не должны передавать динамический код JavaScript.
|
**TL;DR:** `eval` -- это зло, поскольку оно позволяет выполнять пользовательский код JavaScript во время выполнения. Это не только проблема производительности, но и важная проблема безопасности из-за вредоносного кода JavaScript, который может быть получен из пользовательского ввода. Другой языковой особенностью, которую следует избегать, является конструктор `new Function`. `setTimeout` и`setInterval` также никогда не должны передавать динамический код JavaScript.
|
||||||
|
|
||||||
**Иначе:** Вредоносный код JavaScript находит путь в текст, передаваемый в `eval` или другие функции оценки языка JavaScript в режиме реального времени, и получает полный доступ к разрешениям JavaScript на странице. Эта уязвимость часто проявляется как атака XSS.
|
**Иначе:** Вредоносный код JavaScript находит путь в текст, передаваемый в `eval` или другие функции оценки языка JavaScript в режиме реального времени, и получает полный доступ к разрешениям JavaScript на странице. Эта уязвимость часто проявляется как атака XSS.
|
||||||
|
|
||||||
@ -1032,7 +1032,7 @@ null == undefined; // true
|
|||||||
|
|
||||||
<a href="https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A6:Security%20Misconfiguration%20-green.svg" alt=""/></a>
|
<a href="https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration" target="_blank"><img src="https://img.shields.io/badge/%E2%9C%94%20OWASP%20Threats%20-%20A6:Security%20Misconfiguration%20-green.svg" alt=""/></a>
|
||||||
|
|
||||||
**TL;DR:** Следует принять меры предосторожности, чтобы избежать риска случайной публикации секретов в открытых реестрах npm. Файл `.npmignore` может использоваться для внесения в черный список определенных файлов или папок, или массив` files` в `package.json` может выступать в качестве белого списка.
|
**TL;DR:** Следует принять меры предосторожности, чтобы избежать риска случайной публикации секретов в открытых реестрах npm. Файл `.npmignore` может использоваться для внесения в черный список определенных файлов или папок, или массив`files` в `package.json` может выступать в качестве белого списка.
|
||||||
|
|
||||||
**Иначе:** Ключи API вашего проекта, пароли или другие секреты открыты для злоупотребления любым, кто сталкивается с ними, что может привести к финансовым потерям, подлогу и другим рискам.
|
**Иначе:** Ключи API вашего проекта, пароли или другие секреты открыты для злоупотребления любым, кто сталкивается с ними, что может привести к финансовым потерям, подлогу и другим рискам.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user