Forwarded from PSD | Дизайн-пространство
Как мы сделали NFT для сотрудников, или Конструктор эмоций в мире чётких процессов
Узнай, как HR Tech команда Альфы создала инновационную «Открыточную» для доставки эмоций сотрудникам. Следи за Машей, лидером стрима, и их удивительными успехами!
Читать на дизайнерс | #статья
Узнай, как HR Tech команда Альфы создала инновационную «Открыточную» для доставки эмоций сотрудникам. Следи за Машей, лидером стрима, и их удивительными успехами!
Читать на дизайнерс | #статья
Forwarded from Daily Coding 🔥
🛠 PKG - CLI-приложение, позволяющее упаковывать Node.js проекты в исполняемые файлы и запускать их на компьютерах, на которых даже не установлен Node. Оно работает кроссплатформенно и поддерживает Linux, Windows, macOS и FreeBSD.
🌍 Сайт
Daily Coding #инструменты #NodeJS & Max
🌍 Сайт
Daily Coding #инструменты #NodeJS & Max
Forwarded from Dezzigners
🧰 Clean Gradients — этот плагин решает проблему в два клика: добавляет три промежуточные точки с цветом, чтобы вернуть градиенту сочность
Dezzigners
Dezzigners
Forwarded from Node.JS [ru] | Серверный JavaScript
Hidden Class Degradation: тихий убийца производительности JSON.parse в Node.js
Каждый раз, когда JSON.parse создаёт объекты с разными ключами, V8 генерирует новые hidden classes. После 10-15 тысяч вызовов функция деоптимизируется из-за hidden class mismatch. В production это может снизить throughput на 30%.
Как это выглядит в коде
Представь high-load парсинг внешнего API с динамической структурой:
V8 создаёт два разных hidden class: один с role, другой без. Через ~20 итераций цикл деоптимизирует parseUser.
Диагностика
Запусти Node c флагами:
Ищи строки вроде "deoptimized because of: hidden class mismatch". Если они есть — ты в зоне риска.
Три стратегии исправления
1. Фиксированная структура — инициализируй все поля заранее:
Hidden class один для всех экземпляров.
2. Map для динамических ключей:
Map не имеет hidden class transitions, но чтение/запись чуть медленнее.
3. Пул объектов (для high-load):
Заранее подготовь массив объектов с фиксированной структурой, переиспользуй их через reset полей. Это убирает GC и даёт V8 стабильный hidden class.
Вывод: hidden class transitions — это overhead, который легко упустить; фиксированная структура объекта или Map — дешёвый способ вернуть 30% производительности.
Каждый раз, когда JSON.parse создаёт объекты с разными ключами, V8 генерирует новые hidden classes. После 10-15 тысяч вызовов функция деоптимизируется из-за hidden class mismatch. В production это может снизить throughput на 30%.
Как это выглядит в коде
Представь high-load парсинг внешнего API с динамической структурой:
function parseUser(data) {
const obj = {};
if (data.role) obj.role = data.role;
return obj;
}
for (let i = 0; i < 100000; i++) {
parseUser({ name: "test", role: i % 2 ? "admin" : undefined });
}V8 создаёт два разных hidden class: один с role, другой без. Через ~20 итераций цикл деоптимизирует parseUser.
Диагностика
Запусти Node c флагами:
node --trace-opt --trace-deopt app.js | grep "hide class"
Ищи строки вроде "deoptimized because of: hidden class mismatch". Если они есть — ты в зоне риска.
Три стратегии исправления
1. Фиксированная структура — инициализируй все поля заранее:
const obj = { role: null };Hidden class один для всех экземпляров.
2. Map для динамических ключей:
const map = new Map(Object.entries(data));Map не имеет hidden class transitions, но чтение/запись чуть медленнее.
3. Пул объектов (для high-load):
Заранее подготовь массив объектов с фиксированной структурой, переиспользуй их через reset полей. Это убирает GC и даёт V8 стабильный hidden class.
Вывод: hidden class transitions — это overhead, который легко упустить; фиксированная структура объекта или Map — дешёвый способ вернуть 30% производительности.
Forwarded from Цифровой геноцид
SHERPA или назад к human factors как к методу проектирования
Статья моей коллеги Елизаветы — большой и важный шаг, направленный на прояснение некоторых особенностей и нюансов природы человеческой ошибки. На мой взгляд, идея исследования классификации человеческих ошибок — сильно недооценённая часть как индустрии, так и академических исследований.
При этом, конечно, можно найти целый ряд статей, которые посвящены проблемам ошибок операторов и диспетчеров на пультах, на страницах «Технической эстетики» в 70-е и 80-е годы. Затем тема словно немного исчезает из поля интереса отечественной традиции.
С другой стороны, многие нарождающиеся исследования юзабилити и UX в нашей стране были в целом сильнее связаны с коммерческими задачами с фокусом на e-commerce, где вопрос барьеров юзабилити при покупке был значимо более интересен, так же, как, например, и проблемы барьеров и восприятия при подписке.
Тем не менее, важной частью как когнитивной инженерии, так и когнитивной системной инженерии, классического юзабилити или инженерной психологии оставалась проблема ошибок пользователей. Историческая линия работ теоретиков ошибок — Джеймса Ризона («Human Error», «Beyond Human Error: Taxonomies and Safety Science»), Уоллеса и других — конечно, продолжает играть свою роль при проектировании пультов на кораблях, самолётах и в других «взрослых» индустриях (не могу не порекомендовать список литературы блога «Протрактор»).
Проблема при этом становится гораздо более близкой, и по мере проникновения больших языковых моделей и автоматизации в повседневную жизнь, внешние политические факторы и рост собственных разработок софта и ПО внутри РФ, возможно, сильно приоритезируют эту тему.
https://habr.com/ru/companies/lukit_ru/articles/1054000/
Статья моей коллеги Елизаветы — большой и важный шаг, направленный на прояснение некоторых особенностей и нюансов природы человеческой ошибки. На мой взгляд, идея исследования классификации человеческих ошибок — сильно недооценённая часть как индустрии, так и академических исследований.
При этом, конечно, можно найти целый ряд статей, которые посвящены проблемам ошибок операторов и диспетчеров на пультах, на страницах «Технической эстетики» в 70-е и 80-е годы. Затем тема словно немного исчезает из поля интереса отечественной традиции.
С другой стороны, многие нарождающиеся исследования юзабилити и UX в нашей стране были в целом сильнее связаны с коммерческими задачами с фокусом на e-commerce, где вопрос барьеров юзабилити при покупке был значимо более интересен, так же, как, например, и проблемы барьеров и восприятия при подписке.
Тем не менее, важной частью как когнитивной инженерии, так и когнитивной системной инженерии, классического юзабилити или инженерной психологии оставалась проблема ошибок пользователей. Историческая линия работ теоретиков ошибок — Джеймса Ризона («Human Error», «Beyond Human Error: Taxonomies and Safety Science»), Уоллеса и других — конечно, продолжает играть свою роль при проектировании пультов на кораблях, самолётах и в других «взрослых» индустриях (не могу не порекомендовать список литературы блога «Протрактор»).
Проблема при этом становится гораздо более близкой, и по мере проникновения больших языковых моделей и автоматизации в повседневную жизнь, внешние политические факторы и рост собственных разработок софта и ПО внутри РФ, возможно, сильно приоритезируют эту тему.
https://habr.com/ru/companies/lukit_ru/articles/1054000/
Forwarded from PSD | Дизайн-пространство
Как руководителю получать фидбек от сотрудников
Статья для тех, кто руководит командой и чувствует, что ему не всё договаривают. Автор делится способами, как выстроить безопасную и честную обратную связь, чтобы лучше понимать, что происходит в команде.
Читать на дизайнерс | #Карьера
Статья для тех, кто руководит командой и чувствует, что ему не всё договаривают. Автор делится способами, как выстроить безопасную и честную обратную связь, чтобы лучше понимать, что происходит в команде.
Читать на дизайнерс | #Карьера