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
​​🤔Почему код становится legacy?

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

Читать...
👍1
​​🥶Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга

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


Читать...
👍6
​​😍Анти-легаси архитектура для UI приложений

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

Читать...
2
​​👥Как мы работаем с ресурсами в веб-приложениях

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

Читать...
🔥1
​​IT и высокая зарплата: Мифы, реальность, подводные камни

Коварство большой IT зарплаты в том, что она может быстро расти. А навык управления такими суммами может и не появится также быстро. Следует учитывать время и обстоятельства в которых мы живем. Навыки ИТ востребованы и еще доступны к изучению любому у кого есть интернет. В итоге может получиться резко вырваться из нищеты в комфорт и после бахнуться в еще большую яму.

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

Подробнее...
2🔥1
​​🗓 5 популярных JavaScript календарей и планировщиков

В этой статье мы рассмотрим ТОП-5 библиотек JavaScript для создания календарей и планировщиков с простым и понятным пользовательским интерфейсом.

Читать...
🔥1
​​☕️ Что в коробке? Как работают функции в JavaScript

В этой статье мы знакомимся с фундаментальным строительным блоком любого приложения на JavaScript — функцией.

Читать...
👍2👎21
​​🦾Переменные окружения в Node.js: полное руководство

В этой статье мы рассмотрим переменные окружения (environment variables).

Читать...
👍3
​​☕️ Разбираемся в алгоритме быстрой сортировки с помощью JavaScript

В этой статье мы рассмотрим, как работает алгоритм быстрой сортировки с помощью JavaScript с пошаговой иллюстрацией каждого шага.

Читать...
4
​​🧐Эмуляция бэкенда: как разрабатывать изолированный фронтенд с помощью Mock Service Worker

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

Читать...
👍71🔥1
​​😎7 + 1 способ анимировать спиннер

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

Читать...
👍1🔥1
​​😎Pet-проекты — это зло. Вредные советы для фронтендеров

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

Читать...
👎11🔥2👍1
​​🚀Продвинутые техники извлечения данных для достижения максимальной производительности

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

Читать...
Коды ответа HTTP 

Всем привет! 

Какое то время назад я выкладывал похожий пост, но этот дополнен и содержит в себе больше нужной инфы. А еще я узнал что в спецификации существует код 418 - I'm a teapot, без приколов. Подробнее о нем тут.

Основные категории:
1xx. Информационные 100 - 199
2xx. Успешные 200 - 299
3xx. Перенаправления 300 - 399
4xx. Клиентские ошибки 400 - 499
5xx. Серверные ошибки 500 - 599

Чуть подробнее о самых часто встречающихся:
👉 200 - ОК. Cервер успешно обработал запрос.
👉 201 - Created. Сервер обработал запрос и создал новый ресурс
👉 204 - No Content. Сервер обработал запрос, но никакого содержимого нет.
👉 301 - Moved Permanently. Данные, которые запрашиваются, были перемещены по другому адресу навсегда. 
👉 304 - Not Modified. Означает, что запрашиваемый ресурс не изменялся, а значит может использовать кэшированную версию.
👉 400 - Bad Request. Был отправлен запрос, который сервер не может обработать (например в запросе передан не верный формат данных)
👉 401 - Unauthorized. В доступе отказано по причине отсутствия авторизации.
👉 404 - Not Found. Связь с сервером установлена но данных по запросу нет.
👉 500 - Internal Server Error. Внутренняя ошибка сервера, причин ошибки может быть множество.

Если вам нужны совсем-совсем все коды то вот ссылочка

В общем как то так, думаю вам это пригодится.
👍172🔥1
​​🚯Сборка мусора в JavaScript

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

Читать...
👍71
​​🤠Тестируем приложение как сын маминой подруги или взгляд на Trace Based Testing

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

Читать...
​​👍Разработка одностраничных приложений с помощью 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