Node.JS [ru] | Серверный JavaScript
11.4K subscribers
88 photos
5 videos
25 files
3.19K links
Все о разработке backend части на JavaScript (Node JS).
А так же: Express JS, Next JS, Nest, Socket.IO

Канал на бирже - https://telega.in/c/we_use_js

По вопросам рекламы или разработки: @g_abashkin

РКН: https://vk.cc/cJPGOP
Download Telegram
​​👍Разработка одностраничных приложений с помощью HappyX

В этой статье я подробнее расскажу о разработке одностраничных приложений с помощью HappyX с использованием императивного подхода к разработке.

Читать...
Что нового в TypeScript 4.9 - оператор satisfies

Алоха товарищи фронты! Я знаю что TS 4.9 это не самая новая версия так как недавно анонсировали TS 5.0. Но я думаю что далеко не все знают о том что нового было в версии 4.9 и уверен что многим будет это полезно.

И так что делает новый оператор:

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

Рассмотрим на примере:

type FormFields = "name" | "surname" | "age";
const data: Record<FormFields, number | string> = {
name: "name",
surname: "surname",
age: 21,
}

const newAge = data.age * 2;
const nameUpperCase = data.name.toUpperCase();

Объект data имеет как числовые, так и строковые значения, поэтому при работе с этим объектом мы получаем следующие ошибки:

The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
Property 'toUpperCase' does not exist on type 'string | number'.
Property 'toUpperCase' does not exist on type 'number'.

Вот тут-то нам и поможет оператор satisfies.

type FormFields = "name" | "surname" | "age";

const data = {
name: "name",
surname: "surname",
age: 21,
} satisfies Record<FormFields, string | number>

const newAge = data.age * 2;
const nameUpperCase = data.name.toUpperCase();

Также оператор satisfies можно использовать для отлова некоторых ошибок. Например, для проверки объектов на наличие ключей, соответствующих заданному типу:

type FormFields = "name" | "surname" | "age";
const data = {
name: "name",
surname: "surname",
age: 21,
passport: {}
} satisfies Record<FormFields, string | number>

Надеюсь что было полезно. В общем удачи в экспериментах!
👍9👎82
​​👹Shadow Dom в fullstack

В этой статье автор расскажет как с помощью Shadow Dom создавать более чистый и поддерживаемый код, а также повысить эффективность веб-компонентов.

Читать...
👍2
​​🤔Проблемы согласованности данных в микросервисах и их решение

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

Читать...
🔥3
​​🚀Как мы сократили время тестирования на 70% благодаря переходу с Cypress на Playwright

В этой статье мы расскажем, почему и как мы перешли с Cypress на Playwright, а также вы узнаете о ключевых преимуществах Playwright и о том, как мы справились с переходом.

Читать...
🔥1
​​😎Гексагональная архитектура со Spring Boot

В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении.

Читать...
🔥1
​​🚀Как быстро и безболезненно закрыть регресс в API из связки PyTest + JSON Schema

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

Читать...
2
​​🗣Mobile Web, навигация и при чем тут Nginx

В этой статье я хотел бы поделиться опытом внедрения мобильной версии web приложения в нашу архитектуру.

Читать...
🔥4
​​👱‍♂️Использование node-cron для запуска запланированных заданий в Node.js

В этой статье вы узнаете, как использовать cron в Node.js через модуль node-cron для автоматизации задач.

Читать...
🔥5👍21
​​🎃Возможности JS, о которых вы возможно не знали

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

Читать...
8👎1
​​🐢Замедляем разработку. Вредные советы по тестированию в проектах

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

Читать...
2👍2👎1
​​👣Первый шаг в автоматизации тестирования веб-приложений

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

Читать...
🔥1
​​👨‍💻С чего начать разработку мобильного центра принятия решений

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

Читать...
👍2👎1🔥1
​​🧐Обзор фреймворка для сбора данных OWASP Nettacker

В этой статье мы рассказываем об установке фреймворка и его основных функциях.

Читать...
🔥3
​​⭐️Как внедрить гайд по стилю кода в проект

В этой статье я расскажу, от каких проблем вас сможет защитить такой гайд, и приведу подробную инструкцию, как его внедрить.

Читать...
6
​​👥Используем JS Self-Profiling API для профилирования фронтенда на клиентах

В этой статье хочу рассказать про профилирование фронтденда в продакшене с использованием JS Self-Profiling API.

Читать...
2
​​👥Сделали библиотеку компонентов, но пришлось переделывать. Почему так вышло и чем дело кончилось

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

Читать...
🔥5
​​🤷‍♂REST API vs GraphQL: в чём между ними разница

В этой статье автор рассмотрит интерфейсы подробнее, чтобы понять, как выбрать подходящее решение под каждый конкретный проект.

Читать...
5
​​🤨Чем занимается AppSec? Безопасность внутренних веб-ресурсов

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

Читать...
👍21
​​⭐️Разворачиваем веб-приложение в Kubernetes с нуля

В этой статье мы разберёмся, как разворачивать многокомпонентное веб-приложение в кластере Kubernetes на примере его локальной реализации — minikube.

Читать...
3👍1🔥1
​​😶🌫В поисках идеальной Headless CMS для масштабных проектов: как выбрать лучшее решение в 2023 году?

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

Читать...
🔥3👍1