Рубрики
Без рубрики

Сервер боковой архитектуры с узлом и Teadercript с использованием гнезда

Сервер боковой архитектуры с узлом и Teadercript | Каждая платформа имеет свою философию: набор принципов и руководящих принципов, идеологию выполнения вещей, влияющих на эволюцию платформы, …

Автор оригинала: Samuele Resca.

_Originally Опубликовано на https://samueleresca.net.

Каждая платформа имеет свою философию: набор принципов и руководящих принципов. Node.js сильно зависит от Философия Unix Отказ Особенно в двух его рабочих принципах, которые следующие:

«Маленький красивый».

«Сделайте каждую программу сделать одно хорошо».

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

Модульность может стать проблемой, когда вы хотите Следуйте определенной архитектуре или узорам Отказ Такого рода проблем повышается, когда вы участвуете на Крупномасштабные проекты с Распределенные команды Отказ Ну, я нашел решение в Гнездо , которые предоставляют вне коробки серверную боковую архитектуру с узлом и Teadercript.

Гнездо философия и преимущества

Это определение, которое вы можете найти на stestjs.com :

28507035.png

Прогрессивный Node.js Framework для строительства эффективных и масштабируемых серверных приложений. Покажем весь мир Node.js потенциал вместе!

Гнездо представляет собой рамки для построения эффективных, масштабируемых серверных приложений Node.js. Использует Tymdercript и сочетает в себе элементы Ооп , Функциональное программирование и Реактивное программирование Отказ Гнездо подходит сверху экспресс, и он реализует шаблон MVC.

Говоря, ИМХО, Точка силы Гнездо – это его сходство со многими каркатами с других языков. Разработчики ASP.NET, Django и Spring найдут сильно напечатанный подход Tymdercript и архитектуру гнезда очень знакомого. Как и другие MVC Frameworks, характерные, такие как обладаемость, масштабируемость, свободно сцепление, являются основной частью гнезда.

Основные основы

Гнездо использует Декораторы Чтобы определить распознать компоненты внутри нашего кода. Этот вид подхода также называется Мета-программирование И как разработчик ASP.NET, я нашел его очень похоже на концепции, уже реализованные в ASP.NET (E.G.: Action Filters).

Давайте пройдем обзор этих основных части гнезда:

  • @Controller ([префикс]) : Указывает контроллер. Уровень контроллеров отвечает за обработку входящих Запросы и возвращение ответ клиенту;
  • @Component () : Все является компонентом. Репозитории, услуги, помощник должны быть угроза в качестве компонентов. Компоненты могут быть введены в другие компоненты через конструктор;
  • @Modules () : Это просто группирует набор компонентов. Кроме того, они также несут ответственность за инъекцию зависимости содержащихся компонентов, помощников и контроллеров (они могут сравниться с библиотеками классов C #;
  • @Middleware () : Admitwares поддерживает между нашим входящим запросом и сервером. Он работает через поток трубопровода, и они могут быть полезны для аутентификации, регистрации, перенаправления;

Руководство гнездо

Давайте посмотрим конкретный пример архитектуры Nest.js. Этот пример будет способ понять Основные понятия за архитектурой Nest.js.

Вы можете найти репозиторий @ Следующая ссылка: https://github.com/samueleresca/blog.nestgettingStarted

Кроме того, мы будем использовать его как Срок сравнения В следующей главе, чтобы понять сходство с другими обычными рамками. Он просто предоставляет некоторые API для отдыха для хранения информации о базе данных SQL Server.

Давайте пройдим обзор ключевых деталей проекта …

Инфраструктура/зависимостьНестр.тс Содержит определения всех компонентов, введенных через инъекцию зависимости:

Модели/этикетки. Предприятие генерирует новую таблицу на нашем источнике данных, он будет использоваться для хранения информации о некоторых метках. Приложение использует Типрм как ORM фреймворк. Вот определение объекта этикетки:

Услуги/ILABELSSERVICE.TS Определяет интерфейс, который обертывает входной репозиторий. Он предоставляет полезные методы, чтобы открыть операцию CRUD в нашей базе данных через вход.

Наконец, Контроллеры/LabelsController.ts является точкой входа наши HTTP-запросы. Определяет некоторые Dто Модели для того, чтобы выставить любые API, чтобы позволить изменять данные:

Сравнение структуры

Как уже говорилось, Nest.js архитектура ближе к большому количеству каркасов MVC. Это может быть преимуществом для всех людей, которые происходит из «классической» MVC Framework.

Давайте сравним Labelscontroller.ts с тем же контроллером, реализованным на ядро ASP.NET. Вот аналогичная реализация с использованием ядра ASP.NET:

Как видите, контроллер C # приносит одинаковую ключевую концепцию контроллера Tymdercript: оба используют Инъекция зависимости подход, и оба используются Декораторы Для того, чтобы предоставить и улучшить действия контроллера.

Очевидно, что и два ОРМ могут быть похожи. Давайте возьмем две реализации, сделанные с помощью Типрм и Основная структура ; Это сравнение между Модели/этикетки. и Модели/Label.cs :

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

Наконец и ILABELSSERVICES.TS и ILABELSSERVICE.CS Оберните данные и предоставьте его на более высоком уровне абстракции.

Это реализация ILABELSSERVICE.CS :

В обоих случаях Labelsservices.ts и Labelsservice.cs средний слой между данными и контроллером. Они используются для манипулирования данными, чтобы разоблачить их через контроллер.

Последние мысли

В заключение, Nest.js Группы лучшие идеи, которые приходят из классического шаблона MVC, и он применяет их к миру Node.js.

Он обеспечивает хорошую инфраструктуру для создания боковой архитектуры серверов с узлом и Teadercript. Это также может быть знакомым всем разработчику, который приходит от других популярных рамок и языков, таких как ASP.NET, Spring и Django.

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

Для получения дополнительной информации о SpaceStry World, см.:

Твердые принципы с использованием Teadercript

Реактивное программирование, чертовски. Это не о реагировании

Инверсия управления контролем и зависимостями в Teadercript

Ура 🙂.

Покрытие кредитов: La Fée Electricité – Раул Дуф