Forwarded from Библиотека программиста | программирование, кодинг, разработка
Летим зимовать ✈️
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
😎 Типичный программист
🐸 Библиотека программиста
🟢 Ostrovok! Tech
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 111
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке.
Поехать к морю или остаться среди снежных пейзажей — выбирайте сами!
Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже:
Теперь осталось нажать на кнопку участия под этим постом и вы в игре!
Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь.
Всем удачи!
Участников: 111
Призовых мест: 1
Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥1🔥1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
В Chrome Canary 145 появились свойства, которые позволяют нативно растягивать или ужимать текст под ширину блока — без JS.
h1 {
text-grow: per-line scale;
}
• text-grow — растягивает короткие строки
• text-shrink — ужимает длинные
scale, scale-inline, font-size, letter-spacing
По сути, это нативный FitText.js, только одной строкой CSS.
#release_digest #readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3🥰2
Когда копируете объект через {...obj}, вложенные структуры остаются по ссылке. Меняете копию → меняется оригинал.
Ограниченный, но быстрый для простых структур
const clone = (obj) => JSON.parse(JSON.stringify(obj));
Современный универсальный API (Chrome 98+, Firefox 94+, Node 17+, Safari 15+)
const clone = (obj) => structuredClone(obj);
const addItem = (newItem) => {
const clonedState = structuredClone(state);
clonedState.items.push(newItem);
setState(clonedState);
};
⚠️ Глубокое копирование — дорогая операция. В React его используют точечно, а не для всего состояния. В крупных приложениях лучше использовать immer или нормализованные структуры данных.
— Копирование вложенных объектов и графов
— Redux / Zustand, когда нельзя мутировать state
— Снимки данных перед трансформациями
— Копирование конфигураций, где нет функций и методов
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #js #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🥰2
Это как leetcode, но с новогодним настроением: каждый день новая задача по JavaScript или TypeScript, рейтинг, соревнования с разрабами со всего мира.
Почему это стоит попробовать:
Доступно уже 9 дней — успеете войти в ритм и выгрузить максимум пользы
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
1🥰5🔥1
Любой styled-компонент генерирует классы, хеши, вставляет
<style> в документ.Это не бесплатно: инъекция стилей и работа GC заметны на слабых устройствах. На MacBook незаметно, на бюджетных Android — уже да.
const Button = styled.button`
background: ${p => (p.primary ? 'blue' : 'gray')};
`;
Инспектор показывает:
.css-4kq0lj { margin: 0 auto; }
И теперь ищи, какой из 50 вложенных styled-компонентов это создал.
Небольшое отличие порядка импортов — и хеши на сервере и клиенте расходятся. Гидратация падает, юзер видит FOUC. С этим сталкивался почти каждый.
CSS Variables, CSS Modules, Container Queries покрывают 90% кейсов CSS-in-JS:
• Никакого рантайма
• Никаких хешей
• Никакого лишнего веса в бандле
• Прозрачный дебаг
.button {
background: var(--primary-color);
}
Динамика? Меняем
--primary-color из JS → браузер обновляет мгновенно.#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
Вы мигрировали с CSS-in-JS на что-то другое?
Anonymous Poll
26%
Да, перешёл на нативный CSS / CSS Modules
16%
Да, перешёл на Tailwind
1%
В процессе миграции
6%
Планирую, но ещё не начинал
11%
Остаюсь на CSS-in-JS
40%
Никогда не использовал CSS-in-JS
❤4
Команда (алиас npm why с npm 7+) показывает полную цепочку зависимостей — кто, через что и зачем тянет пакет.
Нужно узнать, откуда lodash в зависимостях:
npm explain lodash
Получаете цепочку: проект → axios → follow-redirects → lodash.
Сразу видно, что обновлять или менять.
Подозрение на несколько React одновременно:
npm ls react
Команда покажет каждую версию и её источник.
Нашлась уязвимая транзитивная зависимость:
npm explain vulnerable-package
Понимаете, через какой пакет она попала — обновляете или заменяете.
Проверить только прямые зависимости:
npm ls --depth=0
Быстро находит забытый мусор в package.json.
🧶 Yarn альтернатива
yarn why package-name
Работает так же, с более подробным выводом.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #npm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰4🔥3
Каталог минималистичных SVG-иконок (1600+), выровненных под сетку 24×24. Открытый код, свободная MIT-лицензия, единый визуальный стиль.
npm i iconoir-react # или iconoir, или @iconoir/vue
// React — иконка как компонент
import { Bell, HandBrake } from 'iconoir-react';
<Bell color="hotpink" width={32} />
// Или old-school CSS
<i class="iconoir-hand-brake"></i>
#stack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🥰3👾2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👾3
This media is not supported in your browser
VIEW IN TELEGRAM
GitDiagram визуализирует структуру любого репо: файлы, директории, связи между модулями — всё в виде интерактивной схемы. Удобно, когда нужно быстро понять архитектуру незнакомого проекта.
замените github → gitdiagram в адресе репозитория.
— кликать по узлам, проваливаясь в структуру
— экспортировать диаграмму
— анализировать связность, размеры и «тяжёлые» модули
Для фронтендеров особенно полезно — моментально видно, как устроены компоненты и где находятся ключевые части интерфейса.
#resource_drop
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🥰3
TypeScript переписали на нативный код — и это рабочая реальность.
Компилятор работает в редакторе и CLI, даёт 8–10× прирост скорости и доступен для тестирования.
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🥰3
Vite полностью переписали на Rust-бандлере Rolldown, заменив старую связку esbuild + Rollup. Теперь dev и production используют один инструмент — никаких расхождений в поведении.
— Скорость: в 10-30 раз быстрее Rollup
— Проверено на практике: Linear сократил сборку с 46с до 6с, другие компании ускорились на 40-64%
— Без боли: большинство плагинов работают из коробки
— Единый стек: Vite + Rolldown + Oxc от команды VoidZero
• Встроенная поддержка tsconfig paths
• Поддержка TypeScript decorators (emitDecoratorMetadata)
• Скоро: Full Bundle Mode — dev-сервер быстрее в 3 раза
Обновить до
8.0.0-beta.0 и следовать гайду. Для сложных проектов рекомендуют постепенный переход через пакет rolldown-vite.Если у вас медленные сборки — точно стоит попробовать. Rust делает своё дело, и цифры это подтверждают
#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍3❤2
Представьте: вместо отправки данных клиенту, их обработки и рендера — вы просто отдаёте готовый UI с сервера. Никакой лишней гидратации, меньший бандл, быстрее загрузка.
Зачем это нужно:
Особенно круто для сложных приложений с CMS-контентом или динамическими комбинациями компонентов — сервер сразу отдаёт нужный UI.
⚠️ Фича пока experimental и может иметь breaking changes в минорных релизах. Для продакшена использовать с осторожностью, но для экспериментов — самое время!
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👾2❤1🔥1
React_собес_30_вопросов_с_развёрнутыми_ответами.pdf
58.5 KB
Скачай, изучи, получи оффер
#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3