DevNotes Live
6 subscribers
84.2K photos
12K videos
195 files
35.4K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
Forwarded from Daily Coding 🔥
📖100 Go Mistakes and How to Avoid Them
🖋Harsanyi Teiva 2022

Книга «100 ошибок в Go и как их избежать» показывает, как заменить распространенные проблемы в программировании на Go идиоматичным и выразительным кодом. Вы изучите десятки интересных примеров и кейсов и научитесь выявлять ошибки, которые могут возникнуть в ваших собственных приложениях. Автор книги Тейва Харсаньи систематизирует методы предотвращения ошибок по удобным категориям — от типов данных и строк до параллелизма и тестирования.

💾 Скачать книгу

Daily Coding #книги #Go & Max
Undici в production: почему исходящие HTTP-запросы должны иметь пулы, deadline и собственный backpressure

fetch() в Node.js использует Undici, но в production часто нужен явный контроль: сколько socket'ов держим, сколько ждём upstream и что делаем, если входящий трафик быстрее внешнего API. Типичная ошибка - создавать запросы без лимитов и надеяться, что пул всё спасёт.

Пул создаётся на уровне приложения

Не заводите клиент внутри handler'а. Для критичных интеграций держите Pool per-origin и переиспользуйте его:

import { Pool } from 'undici'

const api = new Pool('https://api.example.com', {
connections: 32,
pipelining: 1,
connectTimeout: 2_000,
headersTimeout: 3_000,
bodyTimeout: 10_000
})

async function callApi(payload) {
const { statusCode, body } = await api.request({
method: 'POST',
path: '/v1/process',
headers: { 'content-type': 'application/json' },
body: JSON.stringify(payload),
signal: AbortSignal.timeout(12_000)
})

const text = await body.text()
if (statusCode >= 500) throw new Error(upstream ${statusCode})
return JSON.parse(text)
}


Важно: тело ответа нужно дочитать или корректно сбросить, даже если оно не нужно. Иначе socket может не вернуться в пул вовремя.

connections - это capacity, а не магическое ускорение

Маленький пул даёт очередь и рост latency. Слишком большой пул перегружает upstream, плодит открытые socket'ы, упирается в NAT / ephemeral ports и ухудшает tail latency.

Практический ориентир: если upstream отвечает за 100 ms, то 32 соединения дают примерно 320 RPS без pipelining. Но финальный размер выбирайте по SLO, payload size, TLS, сети и rate limits.

Таймауты должны быть разными

Один общий timeout скрывает причину деградации.

- connectTimeout - TCP/TLS connect
- headersTimeout - ожидание заголовков
- bodyTimeout - пауза между чанками body
- AbortSignal.timeout() - общий deadline операции

Предупреждение: bodyTimeout не равен лимиту на весь response body.

Backpressure делайте до Undici

Не запускайте Promise.all(items.map(callApi)) на тысячи элементов. Undici поставит часть запросов в очередь, но память и давление на приложение уже выросли.

Ограничивайте concurrency явно, например MAX_IN_FLIGHT = 64. Он не обязан равняться connections: это лимит нагрузки на ваш сервис, а не только на socket pool.

Вывод:
Надёжный исходящий HTTP в Node.js - это не просто fetch(), а управляемые пулы, раздельные таймауты и backpressure до попадания запросов в Undici.
Forwarded from Design Board
Не хотите ли ИКЕАшные 3Дшечки? Нашёл скриптик, который прямо на сайте ИКЕА добавляет кнопку и даёт дёрнуть модельки себе.
День сурка frontend-разработчика

Зарплата стоит, скучные задачи день за днем, календарь забит созвонами, которые не влияют вообще ни на что.

Откликаешься на вакансии, а в ответ тишина либо какие-то мутные конторы. На собесах вместо нормальной оценки навыков цирк с алгоритмами на скорость, как будто ты на олимпиаде, а не работу ищешь.

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

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


👋 Меня зовут Тихон, привет! Я — действующий Frontend-разработчик и ментор. Я за руку довожу до оффера на хорошую позицию в Big Tech и сопровождаю на испытательном сроке.

Также из учеников я собираю комьюнити, где уже более 220 frontend-разработчиков🫂

А в своем канале:
👉Объясняю, как проходить HR-фильтр и превращать отклики в реальные приглашения
👉Помогаю найти мотивацию, борюсь убеждениями, которые мешают развиваться
👉На примерах объясняю, как проходить собеседования, включая техничку
👉Разбираю резюме и делюсь лайфхаками, например как аккуратно “пинговать” рекрутеров

А еще регулярно публикую полезные материалы:
▪️Задачи, на которых валяться кандидаты
▪️База по микрофронтам
▪️Подборка из 100+ каналов с вакансиями для разработчиков
▪️100 вопросов, которые точно помогут тебе на собеседовании
▪️Чек лист проверки своего резюме

А еще у меня множество успешных кейсов и отзывов, найти их можно в канале.

Реклама, erid: 2W5zFJeWaNd ИП Галактионов Тихон Витальевич, ИНН 771618975809
Forwarded from Design Board
This media is not supported in your browser
VIEW IN TELEGRAM
На iOS у сайтов нет нормальной вибрации, поэтому кто-то просто спрятал нативный переключатель внутри кнопки — и оно работает, =).

Получаем костылёк для бр-р-р-отдачи на вебе, ссылка на гит внизу — project-fathom.vercel.app.
BICARAT Студия ювелирных украшений
Ссылка на проект

Поиск по теме:
#магазин #продукт #красота #стиль
Forwarded from Daily Coding 🔥
📖Beginning C# and .NET
🖋Perkins Benjamin, Reid Jon D. 2021

Язык C# был представлен миру, когда в 2002 году компания Microsoft анонсировала первую версию своей платформы .NET Framework. С тех пор его популярность резко возросла, и он стал основным языком для разработчиков настольных, веб-приложений, облачных и кроссплатформенных приложений, использующих .NET. Отчасти привлекательность C# обусловлена его понятным синтаксисом, который основан на синтаксисе C/C++, но упрощает некоторые вещи, которые раньше отпугивали некоторых программистов. Несмотря на это упрощение, C# сохранил мощь C++, и теперь нет причин не переходить на C#. Этот язык несложный и отлично подходит для изучения базовых приемов программирования. Простота изучения в сочетании с возможностями .NET Framework делает C# отличным выбором для начала карьеры программиста.

💾 Скачать книгу

Daily Coding #книги #Csharp & Max
Forwarded from ai.dot(ufna, dev)
Поймал себя на том, что в моем мире Котлин - все еще "какой-то новый язык".

Тем временем, ему уже пятнадцать лет.
Forwarded from ai.dot(ufna, dev)
Программист - адептус механикус. Он знает как работает технология. И она работает.

Вайбкодер - орочий мехбой. Он верит в то, что его большая шмаляла работает. И она работает. Главное в нужный цвет покрасить. (с)
Forwarded from Dezzigners
🧰 ShadowCraft — прекратите использовать плоские, шаблонные тени. Визуализируйте тени в 3D, будто предмет находится на физической поверхности

Dezzigners
Forwarded from Dezzigners
Дизайнеры часто двигают блоки интуитивно. А потом не понимают, почему им не нравится результат

— Родственники говорят «прекрасно», хотя я знаю, что это ужасно, внутренне мне не нравится.

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

Забирай в закрепе @‌formfactor мой мастеркласс, чтобы исправить макеты

Реклама.
Forwarded from Dezzigners
🧰 Набор кистей для иллюстратора — библиотека из 100 реалистичных кистей маркеров в формате .eps, которые помогут стилизовать ваши проекты в иллюстраторе.

Cкачать

Dezzigners
Forwarded from Dezzigners