Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js – Telegram
Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
21.6K subscribers
3K photos
216 videos
50 files
5.27K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
🔌 JavaScript-фичи, о которых многие не знают

Недавно наткнулись на то, что Safari в марте этого года добавил поддержку Iterator helpers. А ведь это реально полезная штука — позволяет делать цепочки трансформаций массивов без создания промежуточных копий.

🔤 Ещё несколько моментов, которые удивили:

array.at(-1) вместо array[array.length - 1]

structuredClone() вместо танцев с JSON.stringify/parse

У Set появились нормальные операции типа union() и intersection()


🔗 В статье собраны 9 таких фич часть новые, часть просто малоизвестные. Например, про callback в replaceAll() или про то, что Promise.withResolvers() избавляет от странного паттерна с промисами.

📍 Навигация: [Вакансии]

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

🐸 Библиотека фронтендера

#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Фронтенд-разработчик, пора выходить за рамки обычного чат-бота 🧠

Пользователи ждут от интерфейсов автономности. Мы научим вас строить AI-агентов, которые умеют принимать решения, сохранять контекст и надёжно интегрироваться в ваш продукт.

Чему вы научитесь:

интеграции через n8n для связи фронтенда с мощными AI-сценариями через визуальные воркфлоу;
основам RAG для того, чтобы ваш агент давал точные ответы на базе внешних данных;
контролю стейта в LangGraph для создания надёжных диалоговых систем, которые не «тупят»;
обсервабилити в LangSmith для отладки поведения нейросети в режиме реального времени.

Сделайте свой проект по-настоящему умным.

Записаться на курс
5😁3
✏️ Подробное объяснение вчерашней задачи

Правильный ответ: 😁 — 166.66px (или ~167px)

🅰️ Разбор flex-свойств:

flex: 1 0 100px = flex-grow: 1, flex-shrink: 0, flex-basis: 100px

flex-grow: 1 — элемент может расти

flex-shrink: 0 — элемент НЕ может сжиматься

flex-basis: 100px — базовый размер 100px


🅰️ Расчёт распределения:

Ширина контейнера: 500px

Базовый размер всех элементов: 3 × 100px = 300px

Свободное пространство: 500px - 300px = 200px

Распределение на 3 элемента: 200px ÷ 3 ≈ 66.66px каждому

Финальный размер каждого элемента: 100px + 66.66px ≈ 166.66px


🔎 Ключевые моменты:

🅱️ min-width: 0 сбрасывает автоматический min-width для flex-элементов (по умолчанию = auto)

🅱️ Однако flex-shrink: 0 запрещает сжатие, поэтому элемент не может стать меньше flex-basis

🅱️ Свободное пространство есть, поэтому элементы растут благодаря flex-grow: 1

🅱️ Все три элемента получают равные доли свободного пространства

📍 Навигация: [Вакансии]

🐸 Библиотека фронтендера

#code_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🥰3
🖍 Полезный JS one-liner: groupBy


const groupBy = (arr, key) =>
arr.reduce((acc, obj) => {
(acc[obj[key]] ??= []).push(obj);
return acc;
}, {});


Что здесь важно:

♍️ reduce — линейный проход по массиву
♍️ ??= — инициализация массива только если ключ ещё не существует
♍️ push — без лишних копирований и аллокаций

Почему это хороший вариант:

 • O(n) по времени
• Нет пересоздания объектов на каждой итерации
• Поведение прозрачное и предсказуемое


Когда использовать:

— Группировка данных из API
— Агрегация логов, событий, результатов тестов
— Любые кейсы, где важна читаемость и производительность

📍 Навигация: [Вакансии]

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

🐸 Библиотека фронтендера

#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2🥰2
💳 Топ-вакансий недели для фронтендеров

Middle+ / Senior FullStack Developer (1 500 —‍ 2 000 $, Hong-Kong)

Frontend-разработчик Vue (Москва)

Frontend разработчик (от 200 000 ₽)

➡️ Больше офферов в канале: @jsdevjob

🐸 Библиотека фронтендера
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4
🖍 BFF: зачем это нужно знать фронтендеру

Чтобы не тащить архитектурные проблемы в UI.

Без понимания BFF приходится агрегировать данные на клиенте, усложнять состояние и чинить UX под универсальные API. BFF показывает, где должна заканчиваться ответственность UI и начинаться серверная адаптация под интерфейс.

ℹ️ Карточки выше — о том, как архитектура backend’а влияет на сложность интерфейса и качество UX.

🔗 Источник

📍 Навигация: [Вакансии]

🐸 Библиотека фронтендера

#blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥰4🥱21
🎅 Секретный Санта для айтишников от Proglib.academy

Весь этот год команда Академии запускала курсы для айтишников. А под Новый год мы запускаем новый курс по ИИ-агентам и ставим под ёлку самый свежий стек 2025 года и обучение проектированию автономных нейросетевых экосистем — от LLM и ReAct-циклов до мультиагентных систем, LangGraph, AutoGen и продакшн-практик.

🎁 Хотим дарить подарки и приглашаем вас поучаствовать в конкурсе:

1️⃣ Упомяните курс Академии у себя в блоге.
2️⃣ Пришлите скрин сюда.
3️⃣ Получите секретный промокод на 10 000 ₽ при оплате любого курса.

Подходит всё — соцсети, блоги, Telegram-каналы от 300 подписчиков и более.

🎄 Акция действует до Нового года.

Win-win, всё как мы любим!
🥰51
🤔 Как сделать страницу нормальной для печати

Если страницу могут распечатать — у неё должны быть print-стили. Иначе пользователь получит веб-макет вместо документа.


@media print {
body {
font-size: 12pt;
color: black;
background: none;
max-width: 210mm; /* формат A4 */
margin: auto;
}

nav, .sidebar, .ads, .button {
display: none;
}

a {
color: black;
text-decoration: underline;
}

a::after {
content: " (" attr(href) ")";
font-size: 10pt;
color: gray;
}

h1, h2, h3, p {
break-inside: avoid;
}
}


Результат:

— чистая ч/б печать
— только контент
— корректная ширина под A4
— читаемые ссылки
— без кривых разрывов страниц

📍 Навигация: [Вакансии]

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

🐸 Библиотека фронтендера

#hotix #css
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍5
💳 Библиотека готовых UI-сниппетов и анимаций

90+ компонентов: текст, кнопки, секции и эффекты с аккуратным дизайном. Подключаются быстро, стили — CSS или Tailwind.

Подходит, когда нужен быстрый и визуально сильный UI без лишней возни.

📎 Ссылка на ReactBits

📍 Навигация: [Вакансии]

🐸 Библиотека фронтендера

#stack #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰41
WANTED: FRONTEND-ВЗЛОМЩИК РЕАЛЬНОСТИ

Разыскивается эксперт, чей код не «плывёт», а интерфейсы не тормозят. Мы знаем, что у тебя накоплен багаж знаний, который пора легализовать.

Приметы:

— в совершенстве знает современный JS-стек и понимает логику Python, Go или Java;
— умеет выстраивать архитектуру крупных SPA-приложений;
— готов делиться опытом с большой аудиторией фронтендеров;
— хочет монетизировать свои знания через образовательные форматы.
Условия:

— официальное сотрудничество с Proglib Academy;
— прокачка личного бренда в профессиональном сообществе;
— дополнительный доход без отрыва от основной работы.

Сдаться добровольно

P.S. Знаешь коллегу, который пишет код «как боженька»? Пора его сдать.
5🥰4
👻 Когда package.json выходит из-под контроля

Проблемы с зависимостями редко взрываются сразу. Они накапливаются: растёт вес, тормозит CI, обновления превращаются в боль.

🔤 В карточках разобрали: как трезво работать с зависимостями, видеть лишнее и держать package.json в состоянии, пригодном для развития проекта.

🔗 Источник

📍 Навигация: [Вакансии]

🎁 Новогодняя акция: 3 курса по цене 1
🤝 Помощь с выбором курса

🐸 Библиотека фронтендера

#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5👍3🔥1