Согласно опросу разработчиков StackOverflow, Node.js является самой популярной средой разработки среди разработчиков за последние несколько лет. Это кроссплатформенная внутренняя среда выполнения JavaScript с открытым исходным кодом, работающая на движке V8.

Синтаксис прост и понятен, а также лучше всего подходит для асинхронного и событийного программирования. Поэтому начать работу с Node.js не составит труда, но как только вы перейдете к продвинутому программированию, вам придется иметь дело со сложностью кода и ошибками, которые могут стать проблемой.

Однако следование лучшим практикам Node.js снижает вероятность ошибок и лазеек в вашем коде и защищает ваше приложение от наиболее распространенных ловушек Node.js.

  1. Всегда создавайте новый проект с помощью npm init и сохраняйте точную версию пакета

NPM - это менеджер пакетов для пакетов Node.js, который в основном используется для установки зависимостей. Всегда создавайте проект с помощью npm init, это поможет вам сгенерировать файл package.json.

$ mkdir my-new-project
$ cd my-new-project
$ npm init

Npm использует JSON для исчерпывающей документации по этим полям и тому, что они делают.

Используйте команду npm install ‹pkg› - затем сохраните, чтобы установить пакет и сохранить его как зависимость в файле package.json.

Например, если вы используете экспресс-пакет, он будет записан как

$ npm install express — save

Он сохраняет пакет с установленной версией в файле package.json следующим образом.

“express”: “⁴.17.1”,

Здесь ведущая каретка «^» означает, что пакет с версией в пределах «› = 4.17.1 ‹5.0.0» принят приложением.

Следовательно, когда кто-то из вашей команды запускает npm install, он установит последнюю версию этого пакета. Если последняя версия несовместима с исходной версией пакета, это может привести к различиям в поведении или ошибкам.

Поэтому для команды разработчиков важно использовать одну и ту же версию. Этого можно добиться с помощью файла .npmrc. У него есть полезные свойства, которые гарантируют, что npm install всегда обновляет package.json и заставляет версию быть такой же.

Это можно просто сделать, выполнив следующую команду в терминале

npm install express — save — save-exact
Or
npm config set save-exact=true

После того, как вы запустите указанную выше команду, зависимость будет сохранена и будет привязана к установленной вами версии.

2. Добавить скрипт

NPM имеет стандартный способ запуска узловых приложений. Добавьте свойство скрипта и объект в свой package.json с ключом запуска. Как показано ниже,

“scripts”: {
“start”: “node myapp.js”
}

Когда кто-то запускает npm start, NPM запускает node myapp.js со всеми зависимостями от node_modules / .bin на вашем $ PATH. Поэтому нет необходимости в глобальной установке модулей NPM.

3. Использовать переменные среды

Используйте переменные среды в Node.js для поиска значений из process.env в коде вашего приложения. Чтобы выяснить, какие переменные среды вы используете, проверьте переменную среды NODE_ENV.

console.log(“Running in :” + process.env.NODE_ENV);

4. Используйте руководство по стилю

Если вы разрабатываете проект в команде, неизбежно будут различия в стиле кодирования каждого разработчика. Большинство разработчиков предпочитают конкретное руководство по стилю, чтобы сделать код читабельным.

К сожалению, если вам нужно работать над кодом с другим стилем кодирования, вам придется вручную менять положение фигурных скобок, пробелов и табуляций на несколько часов. Итак, чтобы оставаться продуктивным, лучший вариант для команды - выбрать конкретное руководство по стилю и следовать ему для всего проекта.

Вот несколько руководств по стилю, используемых популярными технологическими компаниями.

Кроме того, можно использовать некоторые инструменты для обеспечения соблюдения правил выбранного руководства по стилю.

  • Красивее
  • ESLint
  • Автоматизировать форматирование и линт при сохранении
  • Хаски
  • Постановочный
  • Комбинированный с хаски и без ворса
  • EditorConfig

5. Асинхронные структуры

Синхронная функция упрощает понимание логики приложения. Однако он блокирует выполнение любого другого кода до его завершения.

Вы можете отслеживать синхронную функцию в коде с помощью флага -trace-sync-io, он будет отображать предупреждение при обнаружении с синхронным API.

С другой стороны, структуры asynchronous / await в ES6 предоставляют решения для проблем с блокировкой. Поэтому, как разработчик Node, вы должны использовать async / await вместо того, чтобы переходить к синхронным функциям.

6. Обработка ошибок

Пренебрежение обработкой ошибок в коде затрудняет отладку, чем она должна быть. Одна ошибка в приложении может стоить вам миллиардов. Поэтому хорошее управление исключениями важно для приложения.

Обработка ошибок не устраняет ошибки в коде. Но это делает ваш код достаточно умным, чтобы справляться с неожиданными проблемами.

Лучший способ справиться с ошибками - использовать обработчик .catch (), который аккуратно распространит все ошибки, которые необходимо обработать.

7. Избегайте сборки мусора с помощью флагов V8 Engine.

Узел (V8) управляет памятью кучи посредством сборки мусора. Он освобождает память, используемую объектами, на которые больше не ссылаются из стека, чтобы освободить место для создания нового объекта.

Однако, если использование памяти непредсказуемо увеличивается, это может быть не из-за утечки памяти, а из-за простоя узла.

Проблему можно решить, отрегулировав сборщик мусора приложения, вы можете поднять флаги движка V8 и хромовый отладчик, чтобы открыть сборщик мусора для отладки проблем с памятью.

node — expose-gc — inspect myapp.js

8. Сохраняйте приложение без состояния

Если вы сохранили данные, такие как сеансы, пользовательские данные, кеш, в самом приложении, они будут привязаны к этому конкретному процессу. Поэтому вам нужно хранить его во внешних хранилищах данных.

Сохранение состояния вашего приложения без отслеживания состояния позволяет приложению выдерживать системные сбои без ущерба для его служб и производительности.

Для этого вы можете использовать бессерверные платформы, такие как AWS Lambda, которые по умолчанию предписывают поведение без сохранения состояния.

9. Используйте инструменты ведения журнала

Console.log - отличный инструмент, но он имеет свои ограничения в производственном приложении, поэтому вы не можете использовать его для каждой цели ведения журнала. Он не предоставляет достаточного количества параметров конфигурации, например, нет параметра фильтра для фильтрации журналов.

В Node есть несколько фреймворков для ведения журналов, которые можно использовать в вашем приложении. Выбор ведения журнала зависит от ваших бизнес-требований и ограничений ресурсов.

Хорошими примерами фреймворков ведения журнала являются Bunyan, Winston и Pino. Это делает ведение журнала Node.js более простым и эффективным. Это лучший подход для ведения журнала, чем использование агентов, поскольку агенты увеличивают потребление ресурсов и задержку.

Библиотеки журналов помогают в структурировании, форматировании и передаче сообщений журнала без значительных накладных расходов.

10. Протестируйте свое приложение

Очень важно протестировать ваше приложение, прежде чем запускать его на рынок. Независимо от того, на каком этапе разработки вашего приложения, никогда не поздно приступить к тестированию.

Тестирование важно для обнаружения дефектов и ошибок, что гарантирует качество программного обеспечения, делая его более надежным и простым в использовании.

Эксперты рекомендуют писать тест для каждой обнаруженной ошибки. Поэтому вы должны знать:

  • Как воссоздать ошибку (сначала убедитесь, что ваш тест не прошел!)
  • Как исправить ошибку (убедитесь, что вы прошли тест после исправления ошибки)
  • Убедитесь, что ошибка больше никогда не повторится.

Ниже приведены самые популярные библиотеки тестирования для приложений Node.js.

  • Мокко
  • Шутка
  • Жасмин
  • AVA

Подведение итогов

В этой статье мы обсудили 10 лучших практик разработки на Node.js. Следование этим практикам поможет вам написать лучший код для приложения Node.js.

Если вы разрабатываете приложение с Node.js в качестве серверной части, попробуйте« DhiWise , он поддерживает архитектуру чистого кода, что позволяет вам быстрее создавать масштабируемое приложение и упростить обслуживание кода»

DhiWise предоставляет лучшие функции и технологическую поддержку для более быстрой и качественной разработки приложений. Хотите узнать об этом больше? Посетите DhiWise сегодня!