Обзор

В настоящее время я работаю над проектом Nest js для крупной корпоративной компании. До использования Nest я использовал Java для всех своих веб-сервисов. После знакомства с Nest я чувствую, что он превосходит мои старые способы Java, и хочу поделиться своими причинами, почему. К концу этой статьи вы получите представление о том, что такое Nest js, и подойдет ли он для вашего следующего проекта. Давайте начнем:

Nest был разработан Kamil Myśliwiec и был разработан как среда для быстрого создания серверных приложений. Myśliwiec был в значительной степени вдохновлен Angular, и это проявляется в структуре приложения Nest. Вдохновение Angular можно увидеть в использовании контроллеров, провайдеров, модулей и каналов. Все это вписывается в структуру папок, которая похожа на то, как могло бы выглядеть приложение Angular.

Профи Nest

Прелесть Nest в том, что он позиционирует себя на уникальном перекрестке интерфейсной и промежуточной разработки, который многие языки изо всех сил пытались найти. Для любого разработчика Java Spring Nest будет отлично себя чувствовать из коробки. Фреймворк очень основан на аннотациях, и на их основе создается все, от конечных точек до документации Swagger. Эти аннотации скрывают много неприятного Node.js и уродливого JavaScript, и результаты просто восхитительны. Аннотации не только идут на пользу разработчикам среднего уровня, разработчики интерфейсов будут удивлены тем, насколько чистые конечные точки выглядят по сравнению с Node, а аннотации значительно упрощают разработку.

Структура папок в Nest в значительной степени основана на Angular. Это позволяет минимизировать время простоя при первом проектировании службы Nest. Компоненты получают свои собственные папки, причем модуль приложения и основной файл находятся в корне (плюс некоторые дополнительные файлы конфигурации). Эта структура настолько проста, насколько может показаться, и позволяет уделять больше внимания дизайну конечных точек и их потребителей, а не структуре приложения.

В качестве вишенки наверху Nest использует самую последнюю и лучшую версию TypeScript. Использование TypeScript помогает гарантировать, что Nest останется актуальным в быстро меняющемся ландшафте JavaScript, и дает разработчикам меньше переключений контекста. Переход от кода Angular к Nest безболезнен. Разработчикам среднего и основного уровня все равно придется иметь дело с переключением контекста, но, по крайней мере, TypeScript и его проверка типов ближе ко многим языкам среднего уровня, чем Vanilla JavaScript.

Подобно Angular, Nest также имеет достойный инструмент командной строки, доступный через диспетчер пакетов узлов, nestjs / cli. Инструмент командной строки позволит вам сформировать проект, сгенерировать компоненты архитектуры Nest и отобразить информацию о проекте. Документацию по этому поводу можно найти здесь.

Con’s of Nest

Самый большой риск, с которым сталкиваются пользователи Nest, - это отсутствие документации. Фреймворк отлично интегрируется с другими фреймворками, но документация минимальна и не охватывает никаких проблем, которые могут возникнуть. По общему признанию, проблемы, как правило, немногочисленны и редки из-за упрощенной структуры, но когда проблема все же возникает, найти справку по переполнению стека может быть сложно.

Еще одна проблема, хотя и незначительная, - это вопрос долголетия. Nest получает большое количество еженедельных загрузок, но есть несколько других конкурентов серверных фреймворков. Nest действительно имеет преимущество в использовании TypeScript и отношении к Angular, но за этим не стоит поддержка IBM или крупного предприятия. Судя по веб-сайту Nest, можно предположить, что его крупнейшим пользователем является Adidas, хотя другие более крупные компании, не указанные на его домашней странице, могут использовать Nest. Это незначительный недостаток, но при выборе любого фреймворка это следует учитывать.

Заключение

В настоящее время Nestjs / core получает около 74 000 загрузок в неделю на npm. Если вы прочитали эту статью, я бы посоветовал вам пойти и скачать несколько модулей Nest и опробовать их.