🥶Улучшаем возможности PM2 с помощью дополнительных модулей автоскейлинга и мониторинга
В этой статье я бы хотел рассказать о том, с какими трудностями пришлось столкнуться при работе с менеджером node.js процессов PM2, и как нам пришлось расширить его возможности для того, чтобы его было можно использовать эффективнее.
Читать...
В этой статье я бы хотел рассказать о том, с какими трудностями пришлось столкнуться при работе с менеджером node.js процессов PM2, и как нам пришлось расширить его возможности для того, чтобы его было можно использовать эффективнее.
Читать...
👍6
IT и высокая зарплата: Мифы, реальность, подводные камни
Коварство большой IT зарплаты в том, что она может быстро расти. А навык управления такими суммами может и не появится также быстро. Следует учитывать время и обстоятельства в которых мы живем. Навыки ИТ востребованы и еще доступны к изучению любому у кого есть интернет. В итоге может получиться резко вырваться из нищеты в комфорт и после бахнуться в еще большую яму.
В итоге вполне частое явление когда молодой айтишник с большой зарплатой в 100к‑ не способен откладывать систематически небольшую сумму, а его предки с зарплатой 30к успешно это делают. Почему так выходит?
Подробнее...
Коварство большой IT зарплаты в том, что она может быстро расти. А навык управления такими суммами может и не появится также быстро. Следует учитывать время и обстоятельства в которых мы живем. Навыки ИТ востребованы и еще доступны к изучению любому у кого есть интернет. В итоге может получиться резко вырваться из нищеты в комфорт и после бахнуться в еще большую яму.
В итоге вполне частое явление когда молодой айтишник с большой зарплатой в 100к‑ не способен откладывать систематически небольшую сумму, а его предки с зарплатой 30к успешно это делают. Почему так выходит?
Подробнее...
❤2🔥1
🧐Эмуляция бэкенда: как разрабатывать изолированный фронтенд с помощью Mock Service Worker
В этой статье я расскажу о Mock Service Worker — технологии, которая позволяет эмулировать поведение бэкенда в ситуациях, когда по каким-то причинам невозможно использовать реальный бэкенд для полноценной разработки фронтенда, а также когда необходимо изолированно протестировать различные пользовательские сценарии.
Читать...
В этой статье я расскажу о Mock Service Worker — технологии, которая позволяет эмулировать поведение бэкенда в ситуациях, когда по каким-то причинам невозможно использовать реальный бэкенд для полноценной разработки фронтенда, а также когда необходимо изолированно протестировать различные пользовательские сценарии.
Читать...
👍7❤1🔥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. Внутренняя ошибка сервера, причин ошибки может быть множество.
Если вам нужны совсем-совсем все коды то вот ссылочка.
В общем как то так, думаю вам это пригодится.
Всем привет!
Какое то время назад я выкладывал похожий пост, но этот дополнен и содержит в себе больше нужной инфы. А еще я узнал что в спецификации существует код 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. Внутренняя ошибка сервера, причин ошибки может быть множество.
Если вам нужны совсем-совсем все коды то вот ссылочка.
В общем как то так, думаю вам это пригодится.
👍17❤2🔥1
Что нового в TypeScript 4.9 - оператор satisfies
Алоха товарищи фронты! Я знаю что TS 4.9 это не самая новая версия так как недавно анонсировали TS 5.0. Но я думаю что далеко не все знают о том что нового было в версии 4.9 и уверен что многим будет это полезно.
И так что делает новый оператор:
Позволяет нам проверить соответствие выражения некоторому типу, не меняя сам тип. Это помогает при работе с объектами со смешанными типами данных.
Рассмотрим на примере:
}
❗ Объект
Вот тут-то нам и поможет оператор
Также оператор
Надеюсь что было полезно. В общем удачи в экспериментах!
Алоха товарищи фронты! Я знаю что 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👎8❤2