diff --git a/README.russian.md b/README.russian.md
index 9387a29e..7030112d 100644
--- a/README.russian.md
+++ b/README.russian.md
@@ -34,7 +34,7 @@
-# Добро пожаловать! 3 вещи, которые вы должны знать в первую очередь:
+# Добро пожаловать! 3 вещи, которые вы должны знать в первую очередь
**1. На самом деле вы читаете десятки лучших статей Node.js -** этот репозиторий представляет собой краткий обзор и список наиболее популярных материалов по рекомендациям Node.js, а также материалов, написанных здесь соавторами.
@@ -46,13 +46,13 @@
## Оглавление
-1. [Практики структуры проекта (5)](#1-Практики-структуры-проекта)
-2. [Практики обработки ошибок (11)](#2-Практики-обработки-ошибок)
-3. [Практики стиля кода (12)](#3-Практики-стиля-кода)
-4. [Тестирование и общие методы контроля качества (12)](#4-Тестирование-и-общие-методы-контроля-качества)
-5. [Переход к производственным практикам (18)](#5-Переход-к-производственным-практикам)
-6. [Практики безопасности (25)](#6-Практики-безопасности)
-7. [Практики эффективности (2) (Работа в процессе️ ✍️)](#7-черновик-практики-эффективности)
+1. [Практики структуры проекта (5)](#1-Практики-структуры-проекта)
+2. [Практики обработки ошибок (11)](#2-Практики-обработки-ошибок)
+3. [Практики стиля кода (12)](#3-Практики-стиля-кода)
+4. [Тестирование и общие методы контроля качества (12)](#4-Тестирование-и-общие-методы-контроля-качества)
+5. [Переход к производственным практикам (18)](#5-Переход-к-производственным-практикам)
+6. [Практики безопасности (25)](#6-Практики-безопасности)
+7. [Практики эффективности (2) (Работа в процессе️ ✍️)](#7-черновик-практики-эффективности)
@@ -259,7 +259,7 @@
-##! [✔] 3.3 Начинайте кодовый блок фигурными скобками на той же линии.
+## ! [✔] 3.3 Начинайте кодовый блок фигурными скобками на той же линии
**TL;DR:** Открывающие фигурные скобки блока кода должны находиться на той же строке, что и оператор открытия.
@@ -272,7 +272,7 @@ function someFunction() {
}
// Избегайте
-function someFunction()
+function someFunction()
{
// code block
}
@@ -284,7 +284,7 @@ function someFunction()
-##! [✔] 3.4 Разделяйте свои выражения правильно
+## ! [✔] 3.4 Разделяйте свои выражения правильно
Независимо от того, используете ли вы точки с запятой или нет для разделения своих операторов, знание общих ошибок неправильных разрывов строк или автоматической вставки точек с запятой поможет вам устранить обычные синтаксические ошибки.
@@ -292,7 +292,7 @@ function someFunction()
**Иначе:** Как видно из предыдущего раздела, интерпретатор JavaScript автоматически добавляет точку с запятой в конце оператора, если его нет, или считает, что оператор не завершен, где он должен, что может привести к нежелательным результатам. , Вы можете использовать присваивания и избегать немедленного вызова выражений функций для предотвращения большинства непредвиденных ошибок.
-### Пример кода
+### 3.4 Пример кода
```javascript
// Делайте так
@@ -342,7 +342,7 @@ const count = 2 // it tries to run 2(), but 2 is not a function
**Иначе:** Javascript -- это единственный язык в мире, который позволяет напрямую вызывать конструктор ("Class") без его инициализации. Следовательно, классы и конструкторы функций должщны различаться, начинаясь с UpperCamelCase.
-### Пример кода
+### 3.6 Пример кода
```javascript
// для класса мы используем UpperCamelCase
@@ -384,7 +384,7 @@ function doSomething() {}
**Иначе:** Изменение внутренней структуры файлов или подписи может нарушить интерфейс с клиентами.
-### Пример кода
+### 3.9 Пример кода
```javascript
// Делайте так
@@ -404,7 +404,7 @@ module.exports.SMSNumberResolver = require("./SMSNumberResolver/SMSNumberResolve
**Иначе:** Неравные переменные могут возвращать true при сравнении с оператором `==`.
-### Пример кода
+### 3.10 Пример кода
```javascript
"" == "0"; // false
@@ -559,7 +559,7 @@ null == undefined; // true
# `5. Переход к производственным практикам`
-## ![✔] 5.1. Мониторинг!
+## ![✔] 5.1. Мониторинг
**TL;DR:** Мониторинг -- это игра для выявления проблем до того, как их решат клиенты, очевидно, этому следует придать беспрецедентную важность. Рынок перегружен предложениями, поэтому подумайте о том, чтобы начать с определения основных метрик, которым вы должны следовать (мои предложения в подробностях), затем перейти к дополнительным необычным функциям и выбрать решение, которое помечает все поля. Нажмите "Подробнее" ниже для обзора решений.
@@ -793,7 +793,7 @@ null == undefined; // true
-##! [✔] 6.5. Сборник общих рекомендаций по безопасности
+## ! [✔] 6.5. Сборник общих рекомендаций по безопасности
**TL;DR:** Это набор рекомендаций по безопасности, которые не связаны напрямую с Node.js -- реализация Node мало чем отличается от любого другого языка. Нажмите "Подробнее", чтобы просмотреть.
@@ -837,7 +837,7 @@ null == undefined; // true
-##! [✔] 6.9. Экранируйте вывод HTML, JS и CSS
+## ! [✔] 6.9. Экранируйте вывод HTML, JS и CSS
@@ -916,7 +916,7 @@ null == undefined; // true
-**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.
@@ -1032,7 +1032,7 @@ null == undefined; // true
-**TL;DR:** Следует принять меры предосторожности, чтобы избежать риска случайной публикации секретов в открытых реестрах npm. Файл `.npmignore` может использоваться для внесения в черный список определенных файлов или папок, или массив` files` в `package.json` может выступать в качестве белого списка.
+**TL;DR:** Следует принять меры предосторожности, чтобы избежать риска случайной публикации секретов в открытых реестрах npm. Файл `.npmignore` может использоваться для внесения в черный список определенных файлов или папок, или массив`files` в `package.json` может выступать в качестве белого списка.
**Иначе:** Ключи API вашего проекта, пароли или другие секреты открыты для злоупотребления любым, кто сталкивается с ними, что может привести к финансовым потерям, подлогу и другим рискам.