Всё по фронтенду, бэкенду и девопсу в одном месте Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/64ai
Web API, которые функционально приближают веб-приложения к нативным
Чтобы дать пользователям доступ к функциям, привычным в нативных приложениях, и добавить новые, можно использовать Web API.
В статье подробно рассказали о них и раскрыли некоторые тонкости: https://habr.com/ru/companies/clevertec/articles/820227/
#javascript #api #react
Анимация раскидывания частиц на чистом JavaScript
Вы наверняка встречали такой эффект, как на видео. Часто для его реализации используются уже готовые бибилотеки. Но в этот раз предлагаем вам посмотреть, как повторить такой эффект с помощью чистого JS-кода.
Подробнее: https://codepen.io/ma77os/pen/ExOKBay
#codepen
Что такое примеси (mixins) в JS
Примесь — это набор методов, который вы «подмешиваете» в несколько разных классов, чтобы не дублировать код. Вместо того чтобы создавать огромный класс-«комбайн» или строить сложную цепочку наследования, вы берёте кусочек функциональности — примесь — и добавляете его туда, где он нужен.
Почему вообще понадобились примеси:
1. В JavaScript только одно наследование «по классам». Класс может расширять ровно один другой класс (extends). Если же необходимо поделиться возможностями между несколькими иерархиями, наследование начинает «скрипеть».
2. Составление (composition) гибче, чем наследование. Примеси позволяют «составлять» объект из маленьких независимых блоков логики, не связывая их жёстко цепочкой «родитель → потомок».
Как это выглядит в коде:
// 1. Описываем примесь как обычный объект с методами
const canLog = {
log(message) {
console.log(`[${this.name}] ${message}`);
}
};
// 2. Функция-помощник, которая «подмешивает» методы
function applyMixin(targetClass, mixin) {
Object.assign(targetClass.prototype, mixin);
}
// 3. Используем
class User {
constructor(name) { this.name = name; }
}
applyMixin(User, canLog);
const u = new User('Анна');
u.log('Привет!'); // [Анна] Привет!
const TimestampMixin = (Base) => class extends Base {
get createdAt() {
if (!this._createdAt) this._createdAt = Date.now();
return this._createdAt;
}
};
class Article {}
class Comment {}
class ArticleWithTime extends TimestampMixin(Article) {}
class CommentWithTime extends TimestampMixin(Comment) {}
Делитесь своим опытом в опросе про облака
Мы готовим большое исследование по облачным технологиям и хотим узнать ваше мнение.
Расскажите, как вы работаете с облаками, какие у вас возникают вопросы или трудности. Фидбэк можно оставить в этой гугл-форме
Спасибо 🙏
SOLID на фронтенд примерах
В этом плейлисте собраны 6 уроков по SOLID для фронтенд-разработчиков. Вы узнаете про принцип единственной ответственности, использование DIP, LSP, OCP и не только.
#solid@tproger_web #фронтенд@tproger_web
Пятнашки на Vue
Полезный codepen-проект для тех, кто изучает Vue. Сможете не только изучить алгоритм игры, но и посмотреть, как это реализовано на фреймворке.
https://codepen.io/leemartin/pen/VwmdyNQ
#codepen #vue
Compound Component: избавляемся от props-drilling и получаем гибкий API
«Составной компонент» — паттерн, в котором родитель хранит состояние, а дочерние элементы свободно комбинируются без явной передачи пропов. В материале показан путь от обычного аккордеона с длинным списком props к контекст-ориентированной версии, где порядок и число подпроектов не ограничены. Плюсы, минусы, подводные камни — всё разобрано на живых примерах.
#фронтенд #react
Старожилы веб-разработки на месте? К вам вопрос
Споры про выбор инструмента для работы с фронтендом не утихают и никогда не утихнут. React, Vue, Svelte или какая-то ещё библиотека или фреймворк всегда будут иметь последователей.
Но что выбрать новичку? Вспомните себя. В начале пути столько всего нужно изучить и понять, что голова кружится. А тут ещё с каждой стороны летят противоположные советы и наставления.
Если поставить себя на место этого новичка, то что бы вы посоветовали ему изучать сегодня в качестве первой библиотеки или фреймворка? У какого сейчас больше перспектив или ниже порог входа? Поделитесь своим мнением в комментариях и расскажите почему вы считаете именно так.
#обсуждение
Container Queries: адаптивные компоненты без медиазапросов
Представьте карточку-виджет, которая сама подстраивается к ширине блоков сетки, не глядя на размеры экрана. Container Queries дают такую гибкость: элемент ориентируется на контейнер и меняет стили при порогах вроде @container (min-width: 40rem).
В этой статье подробно о контейнерных запросах — понятная теория, примеры кода и обзор текущей поддержки во всех основных браузерах.
#фронтенд #css #адаптивность
Расскажите про свой опыт поиска работы
Мы сейчас проводим исследование — хотим разобраться, как айтишники ищут работу: на что обращаете внимание в вакансии, что для вас точно красный флаг, а что — зеленая простыня. Мы хотим из первых уст узнать про все боли, подводные камни и нюансы рекрутинга в ИТ в 2025 году, поэтому просим вашей помощи — пройдите опрос, который займет у вас около 15 минут.
Давайте поможем компаниям и специалистам эффективнее и быстрее находить друг друга.
#опрос
GSAP теперь доступна бесплатно
Популярная библиотека для создания анимаций в вебе получила очередное обновление и стала бесплатной для сообщества. Теперь и ядро либы, и все её платные плагины доступны каждому благодаря Webflow.
Все подробности в блоге команды GSAP: https://gsap.com/blog/3-13/
#новости #gsap
Относительные цвета в CSS
В CSS появился синтаксис, который позволяет динамически менять цвета в браузере без использования препроцессоров. Чтобы понять, как это работает, мы нашли интерактивное руководство, где все показано наглядно.
Посмотрите его и, возможно, вы сможете отказаться от препроцессоров в своих проектах:
https://ishadeed.com/article/css-relative-colors/
#css
React 19 — новые хуки за 15 минут
Владилен Минин коротко демонстрирует useActionState
, useOptimistic
и улучшенный useDeferredValue
, чтобы вы поняли, как ускорить UI без лишних перерендеров.
#react@tproger_web
CSS для печати на бумаге
Интересная статья, в которой рассмотрели особенности стилизации веб-страниц для экспорта в печатный вид: https://habr.com/ru/articles/798765/
#css@tproger_web
Мини-Reddit в Telegram: бот + React-мини-апп за неделю
В этой статье показан полный путь создания сообщества «как на Reddit», но прямо в Telegram Mini App. Бот на node-telegram-bot-api управляет постами и голосами, мини-приложение на React рендерит древовидные комментарии и недельный ТОП, API-сервер на Express раздаёт данные, а MySQL и Redis держат хранилище. MVP подняли за одну рабочую неделю, активно используя ИИ для генерации 80–90 % кода.
#фронтенд #бэкенд #telegram
Большой сборник задач для фронтендеров
Тут собрано более 600 заданий по различным темам для проверки ваших знаний. А для удобства есть встроенный редактор, в котором можно проверить свой вариант решения, не переходя в другой редактор кода или IDE.
Проверить себя можно тут: https://bigfrontend.dev/
#фронтенд #инструменты
Каким был интернет 2000-х 👨🦳
Современные юзеры, привыкшие к быстрой загрузке и безлимиту, вряд ли представят, как это — смотреть, как картинка появляется на экране по частям и тщательно рассчитывать каждый мегабайт, чтобы не остаться без интернета.
Скорость 56 кбит/с была роскошью, а «выйти в сеть» превращалось в ритуал: отключить телефон, запустить модем и посвятить этому весь вечер. Мы сохраняли страницы на диск, читали письма и тексты офлайн, чтобы не тратить драгоценные минуты, знали коды вроде *17#.
Мы сделали годный лонгрид по цифровой эпохе того времени. Так что, если хотите свести олдскулы или узнать больше об этих временах — велком
Без сборщика: подключаем JS-библиотеку напрямую
Чтобы притянуть стороннюю библиотеку в проект, не обязательно городить Webpack или Vite. Здесь разбираются три вида файлов, которые обычно лежат в npm-дистрибутиве: модули ES, «классические» глобальные переменные и CommonJS, способы находить нужный вариант в dist, писать компактный import map и подключать сложные модули даже без Node.
В довесок — чек-лист инструментов (esm.sh, download-esm, JSPM) и подсказки, как определить тип файла за пару секунд.
#фронтенд #javascript
Матовое стекло следующего уровня с backdrop-filter в CSS
Для создания эффекта матового стекла на веб-сайте самый просто способ — использования filter: blur()
. Но Джош Комо предлагает вариант с помощью backdrop-filter: blur()
, ещё одного CSS-свойства, которое делает эффект круче.
В этой статье вы узнаете, чем оно отличается от классического свойства filter, как браузер вычисляет «то, что под элементом», какие эффекты (blur
, brightness
, contrast
…) сочетаются между собой и где сегодня есть поддержка. В конце — интерактивная песочница: меняйте параметры и сразу видите результат.
#фронтенд #css
Синтезатор в браузере: создаём музыкальный инструмент на Web Audio APIAudioContext
, OscillatorNode
и GainNode
— всё, что нужно, чтобы браузер зазвучал. Этот пошаговый материал научит вас превращать вашу клавиатуру в мини-аккордеон: вы подготовите таблицу частот, подключите осцилляторы разной формы волн, пропишите обработчики keypress
/keyup
и настроите все в Svelte.
В итоге вы получите полноценный JavaScript-инструмент с открытым исходным кодом. Все подробности в статье.
#фронтенд #svelte
С 20 мая по 2 июня 2025 года в школе углублённого изучения Golang – GOLANG NINIJA – пройдёт традиционная весенняя распродажа.
Скидки коснутся всех представленных на данный момент курсов:
— Искусство безмолвной паники. ~3 недели на прохождение. Вы узнаете о лучших практиках и популярных мифах вокруг defer, panic и recover, а также вскроете их вплоть до кода рантайма и ассемблера.
— Искусство работы с ошибками. ~6 недель на прохождение. Грамотная обработка ошибок – это залог отказоустойчивости вашего приложения. Узнаете о стандартной библиотеке и не только, а также проследите эволюцию языка в этом холиварном вопросе.
— Искусство написания сервиса. ~5 месяцев на прохождение. Глобальная задача курса – написать с нуля бэкенд для чата поддержки банка со всеми вытекающими. После прохождения курса не должно остаться непонятных моментов в том, как могут быть разработаны и устроены сервисы на Go.
Ведущий автор – Антон Телышев, архитектор решений, технический лидер, контрибьютор в Golang непосредственно и в open source вокруг. Не пропустите!
Это #партнёрский пост
Милое объяснение оператора JOIN в SQL
Оператор JOIN
в SQL — это инструмент, который помогает соединить данные из двух или более таблиц, если у них есть что-то общее, например, одинаковые значения в определённых столбцах (ID, названия и т. д.).
Держите ролик, где простыми словами объясняют работу этого оператора, а что самое главное — всё это наглядно и с котиками.
#sql #бд
Я: Зацени мои крутые проекты на GitHub
Также мои проекты:
curl-impersonate | Запросы к сайту, как от живого человека
Инструмент позволяет пользователям выполнять HTTP-запросы с использованием библиотеки curl
, имитируя поведение различных браузеров и устройств. По заверениям создателей, умеет обходить ограничения и блокировщики веб-сайтов, направленные против автоматизированных систем.
Цена: бесплатно
Репозиторий проекта
@prog_tools
15 продвинутых приёмов TypeScript, о которых знают не все
Казалось бы, вы уверенно владеете TypeScript — аннотации, дженерики, утилитарные типы… Но язык прячет множество фишек, способных упростить код и сделать его безопаснее.
В этой статье вы найдете полезные трюки, которые пригодятся на продвинутых проектах.
#typescript@tproger_web #фронтенд@tproger_web
Как сделать галерею обложек со Scroll-Driven анимацией
Отличная статья, в которой Эдди Османи показал, как сделать эффект галереи, как в iPod, используя современные возможности CSS. Подробнее: https://addyosmani.com/blog/coverflow/
#css
Мечтаете о зимовке в другой стране, но начальник держит вас в офисе?
Тогда вам в Точку. Здесь можно работать откуда угодно. Это не просто «удалёнка», это свобода жить и работать там, где хочется.
Точка — это финтех-компания, которая создала больше 60 сервисов для бизнеса — от онлайн-бухгалтерии до инструментов для работы на маркетплейсах.
Над всем этим работают 1300 крутых специалистов: разработчики, продакты, дизайнеры, аналитики, тестировщики, девопсы. Здесь ценят ум, инициативу и реальный результат.
Хотите работать без привязки к месту? Всё самое интересное — по ссылке.
Это #партнёрский пост
Освойте Promises в JavaScript: пошаговое руководство
Асинхронный код — неотъемлемая часть современного JavaScript. Промисы (Promise) помогают управлять такими операциями, обеспечивая чистый и понятный синтаксис. В этом руководстве вы узнаете, как создавать промисы, обрабатывать их состояния (pending
, fulfilled
, rejected
) и использовать методы .then()
, .catch()
и .finally()
для управления результатами асинхронных операций. Примеры кода и наглядные схемы помогут закрепить материал и применять его на практике.
#фронтенд #javascript #асинхронность