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 Dezzigners
Forwarded from Daily Coding 🔥
This media is not supported in your browser
VIEW IN TELEGRAM
Нейросети уже заменяют носителей языка.

В Telegram быстро набирает популярность ИИ-девушка Chatty, с которой можно голосом практиковать живой разговорный английский и ещё 12 языков на основе новейших моделей искусственного интеллекта. Попробовать можно бесплатно.

🇬🇧 Английский: @ChattyTutorBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
Forwarded from Dezzigners
This media is not supported in your browser
VIEW IN TELEGRAM
Нейросети уже заменяют носителей языка.

В Telegram быстро набирает популярность ИИ-девушка Chatty, с которой можно голосом практиковать живой разговорный английский и ещё 12 языков на основе новейших моделей искусственного интеллекта. Попробовать можно бесплатно.

🇬🇧 Английский: @ChattyTutorBot
🇩🇪 Немецкий: @ChattyGermanBot
🇪🇸 Испанский: @ChattySpanishBot
🇫🇷 Французский: @ChattyFrenchBot
🇮🇹 Итальянский: @ChattyItalianBot
🇵🇹 Португальский: @ChattyPortugueseBot
🇨🇳 Китайский: @ChattyChineseBot
🇯🇵 Японский: @ChattyJapaneseBot
🇰🇷 Корейский: @ChattyKoreanBot
🇸🇦 Арабский: @ChattyArabicBot
🇹🇷 Турецкий: @ChattyTurkishBot
🇷🇺 Русский: @ChattyRussianBot
🇵🇱 Польский: @ChattyPolandBot
Forwarded from Design Board
☕️
СФЕРА RGB В FIGMA ЗА 7 МИН.

Урок по созданию сферы RGB в Figma.


#Урок
Forwarded from Daily Coding 🔥
📖Learning GitHub Copilot
🖋Laster Brent 2025

Повысьте продуктивность написания кода с помощью генеративного искусственного интеллекта GitHub Copilot. В этом практическом руководстве автор Брент Ластер расскажет, как использовать генеративный искусственный интеллект для более быстрого написания качественного кода, простого создания тестов, безупречной документации на любом этапе разработки и многого другого. Вы также узнаете о более продвинутых способах использования, таких как использование функции Copilot Agent для автономного добавления функций и автоматического просмотра запросов на включение изменений.

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

Daily Coding #книги #Git & Max
process.nextTick в дебаунсерах: как сделать Event Loop неубиваемым?

Кажется, что process.nextTick быстрее setTimeout(fn, 0), поэтому его часто используют в дебаунсерах. Но в production это может заблокировать Event Loop, превратив приложение в тормознутый монолит. Ошибка в том, что разработчики путают микрозадачи с макрозадачами и не видят последствий.

Почему nextTick опасен в дебаунсере?

process.nextTick выполняется до всех фаз Event Loop, включая I/O и таймеры. Если дебаунсер вызывает nextTick рекурсивно или на каждое событие, микрозадачи забивают очередь, и Event Loop не может перейти к другим фазам. Результат: CPU 100%, запросы висят, приложение умирает.

* nextTick никогда не даст выполниться I/O, пока его очередь не опустеет.
* Это убивает производительность при частых событиях, например, в WebSocket или resize.

Что происходит под капотом?

Когда вы пишете:

function badDebounce(fn) {
let pending = false;
return function() {
if (!pending) {
pending = true;
process.nextTick(() => {
pending = false;
fn();
});
}
};
}


То при каждом вызове кладется микрозадача. Если событие приходит каждую миллисекунду, Event Loop не успевает обработать I/O, таймеры или setImmediate. Это классический starvation.

Как диагностировать проблему?

* Используйте node --inspect и CPU profiling: ищите много вызовов nextTick в стеке.
* Clinic.js покажет, как микрозадачи занимают 100% цикла.
* Старый трюк — замер времени через process.hrtime.bigint(): если setImmediate выполняется с большой задержкой, значит, nextTick блокирует.

Правильный дебаунс — через setTimeout

function debounce(fn, delay) {
let timer = null;
return function() {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, arguments), delay);
};
}


Это макрозадача, которая не блокирует Event Loop. setTimeout корректно обрабатывает события на I/O фазе и не вызывает starvation.

Когда nextTick оправдан?

Только для синхронной обработки ошибок или действий, которые должны выполниться строго до следующей фазы. В дебаунсерах — никогда.

Если приложение тормозит на событиях, первым делом проверяйте дебаунсеры на наличие process.nextTick. Это частая причина падения производительности в Node.js.

Вывод:
process.nextTick в дебаунсере блокирует Event Loop и приводит к starvation I/O, используйте setTimeout как единственно правильный вариант, чтобы не убить производительность в production.
Forwarded from Dezzigners
This media is not supported in your browser
VIEW IN TELEGRAM
🧰 Draw Connector — плагин, позволяющий вести стрелки между частями вашего проекта

Dezzigners
LANCIA style
Paweł Breshke Czyżewski