uz
Feedback
Фронтендер от бога

Фронтендер от бога

Kanalga Telegram’da o‘tish

Божественные дайджесты по фронтенду и немного юмора. По всем вопросам: @godinmedia

Ko'proq ko'rsatish
3 426
Obunachilar
-224 soatlar
-77 kunlar
-2030 kunlar
Obunachilarni jalb qilish
Avgust '26
Avgust '26
+9
0 kanalda
Iyul '26
+6
0 kanalda
Get PRO
Iyun '26
+4
0 kanalda
Get PRO
May '26
+6
0 kanalda
Get PRO
Aprel '26
+2
0 kanalda
Get PRO
Mart '26
+3
0 kanalda
Get PRO
Fevral '26
+1
0 kanalda
Get PRO
Yanvar '26
+4
0 kanalda
Get PRO
Dekabr '25
+21
0 kanalda
Get PRO
Noyabr '25
+7
0 kanalda
Get PRO
Oktabr '250
0 kanalda
Get PRO
Sentabr '25
+2
0 kanalda
Get PRO
Avgust '25
+3
0 kanalda
Get PRO
Iyul '25
+2
0 kanalda
Get PRO
Iyun '25
+2
0 kanalda
Get PRO
May '25
+7
0 kanalda
Get PRO
Aprel '25
+6
0 kanalda
Get PRO
Mart '25
+192
0 kanalda
Get PRO
Fevral '25
+190
0 kanalda
Get PRO
Yanvar '25
+36
0 kanalda
Get PRO
Dekabr '24
+101
0 kanalda
Get PRO
Noyabr '24
+593
0 kanalda
Get PRO
Oktabr '24
+610
0 kanalda
Get PRO
Sentabr '24
+475
0 kanalda
Get PRO
Avgust '24
+589
0 kanalda
Get PRO
Iyul '24
+642
0 kanalda
Get PRO
Iyun '24
+55
0 kanalda
Get PRO
May '24
+16
0 kanalda
Get PRO
Aprel '24
+14
0 kanalda
Get PRO
Mart '24
+30
0 kanalda
Get PRO
Fevral '24
+78
1 kanalda
Get PRO
Yanvar '24
+43
0 kanalda
Get PRO
Dekabr '23
+39
0 kanalda
Get PRO
Noyabr '23
+9
0 kanalda
Get PRO
Oktabr '23
+17
0 kanalda
Get PRO
Sentabr '23
+73
0 kanalda
Get PRO
Avgust '23
+164
0 kanalda
Get PRO
Iyul '23
+487
0 kanalda
Get PRO
Iyun '23
+412
0 kanalda
Get PRO
May '23
+12
0 kanalda
Get PRO
Aprel '23
+7
0 kanalda
Get PRO
Mart '23
+5
0 kanalda
Get PRO
Fevral '23
+12
0 kanalda
Get PRO
Yanvar '23
+15
0 kanalda
Get PRO
Dekabr '22
+82
0 kanalda
Get PRO
Noyabr '22
+10
0 kanalda
Get PRO
Oktabr '22
+8
0 kanalda
Get PRO
Sentabr '22
+10
0 kanalda
Get PRO
Avgust '22
+13
0 kanalda
Get PRO
Iyul '22
+111
0 kanalda
Get PRO
Iyun '22
+13
0 kanalda
Get PRO
May '22
+106
0 kanalda
Get PRO
Aprel '22
+127
0 kanalda
Get PRO
Mart '22
+9
0 kanalda
Get PRO
Fevral '22
+10
0 kanalda
Get PRO
Yanvar '22
+15
0 kanalda
Get PRO
Dekabr '21
+72
0 kanalda
Get PRO
Noyabr '21
+347
0 kanalda
Get PRO
Oktabr '21
+836
0 kanalda
Get PRO
Sentabr '21
+350
0 kanalda
Get PRO
Avgust '21
+83
0 kanalda
Get PRO
Iyul '21
+140
0 kanalda
Get PRO
Iyun '21
+339
0 kanalda
Get PRO
May '21
+1 365
0 kanalda
Get PRO
Aprel '21
+439
0 kanalda
Get PRO
Mart '21
+4 710
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
28 Avgust+1
27 Avgust0
26 Avgust0
25 Avgust+1
24 Avgust0
23 Avgust+1
22 Avgust+1
21 Avgust0
20 Avgust0
19 Avgust+1
18 Avgust0
17 Avgust+1
16 Avgust+1
15 Avgust0
14 Avgust0
13 Avgust0
12 Avgust+1
11 Avgust0
10 Avgust0
09 Avgust0
08 Avgust+1
07 Avgust0
06 Avgust0
05 Avgust0
04 Avgust0
03 Avgust0
02 Avgust0
01 Avgust0
Kanal postlari
Webflow → Next.js без фронтендеров: как мы перенесли 500+ страниц сайта через Cursor #почитать Нам нужно было оперативно увез
Webflow → Next.js без фронтендеров: как мы перенесли 500+ страниц сайта через Cursor #почитать Нам нужно было оперативно увезти наш сайт с Webflow: 500+ страниц, блог и база знаний. При этом возвращать фронтенд-разработку в режим постоянной поддержки сайта мы не хотели. Поэтому рассматривали конструкторы и CMS, но быстро поняли, что это будет работа в минус. Все усилия на переезд лишь вернули бы сайт в рабочее состояние, не дав новых возможностей. В итоге мы решили вести разработку и поддержку сайта в Cursor. То есть переписать его на NextJS с помощью AI агентов. Такая связка дала понятную модель страниц, быструю доставку статики и ISR для контента, а также возможность отказаться от отдельной CMS за счёт MDX. В спокойном режиме за два месяца удалось полностью переписать сайт и запустить его в прод. Читать статью

2
hq-cropper: Image Cropper без зависимостей для JavaScript #почитать Хочу рассказать о своей библиотеке hq-cropper — инструмен
hq-cropper: Image Cropper без зависимостей для JavaScript #почитать Хочу рассказать о своей библиотеке hq-cropper — инструменте для обрезки изображений на чистом TypeScript без единой зависимости. Когда искал cropper для своего проекта, столкнулся с двумя проблемами. Во-первых, большинство популярных решений тянут за собой кучу зависимостей и весят 100+ KB. Во-вторых, мало кто работает с большими изображениями. ⏱Читать статью
413
3
Ленивые итераторы в JavaScript: руководство с примерами #почитать Полное руководство по хелперам итераторов в JavaScript: как
Ленивые итераторы в JavaScript: руководство с примерами #почитать Полное руководство по хелперам итераторов в JavaScript: как ленивые вычисления заменяют цепочки .map().filter() и экономят память. Примеры, сравнение с массивами, подводные камни. ⏱Читать статью
435
4
Symbol.iterator: управление spread-синтаксисом JavaScript #почитать Symbol.iterator — это не просто «ещё один символ» в JavaS
Symbol.iterator: управление spread-синтаксисом JavaScript #почитать Symbol.iterator — это не просто «ещё один символ» в JavaScript. Это ключ, который позволяет вам сказать языку, как именно ваш объект должен вести себя в таких фундаментальных операциях, как цикл for...of или синтаксис spread (...). На практике это даёт удивительную возможность: создавать объекты, которые могут быть одновременно и структурированными хранилищами данных с именованными свойствами, и коллекциями, готовыми к «разворачиванию» в аргументы функции. В статье мы разберём, как с помощью Symbol.iterator решить классическую дилемму «объект или массив» на конкретном примере из реальной задачи. ⏱Читать статью
608
5
Мой справочник по Feature-Sliced Design #почитать Так как при использовании Feature-Sliced Design (FSD) возникает много вопро
Мой справочник по Feature-Sliced Design #почитать Так как при использовании Feature-Sliced Design (FSD) возникает много вопросов и разные люди понимают её по-разному, я решил написать статью-справочник, раскрывающий некоторые подробности методологии. В этой статье я продолжаю использовать те же принципы и часть терминологии, что и в предыдущей. Здесь я, в основном, описываю структурирование по правилам методологии. А в следующей статье, напротив, рассмотрю, как можно улучшить структуру проекта, намеренно нарушая правила FSD. Заранее предупрежу, что правила методологии носят рекомендательный, а не обязательный характер. Их назначение — задать направление структурирования, а дальше принимать решения нужно в зависимости от конкретного проекта и ситуации в нём. Строгое же следование правилам может привести к бо̒льшим проблем, чем их нарушение. ⏱Читать статью
635
6
Бесплатные и платные хостинги для сайтов на Next, React и JAMStack #почитать Сегодня я рассмотрю несколько специализированных
Бесплатные и платные хостинги для сайтов на Next, React и JAMStack #почитать Сегодня я рассмотрю несколько специализированных сервисов для хостинга фронта, среди которых не будет однотипных VPS. Только узкоспециализированные решения для хостинга сайтов. Мне хотелось ответить на вопрос, какой сервис будет лучшим для конкретного, узкого сценария и стека, а не просто перебрать очевидные сервисы, которые популярны, но не имеют своей специализации. ⏱Читать статью
494
7
Intlayer: альтернатива @nuxt/i18n с фокусом на оптимизации бандла #почитать После интеграции nuxt/i18n в несколько моих проек
Intlayer: альтернатива @nuxt/i18n с фокусом на оптимизации бандла #почитать После интеграции nuxt/i18n в несколько моих проектов я пришел к однозначному выводу: это, безусловно, лучшее i18n-решение для JS-фреймворков. Его «plug&play» настройка, загрузка пространств имен (namespaces) и встроенная маршрутизация, настоящее удовольствие в работе. Однако у этого решения есть серьезная проблема: загруженные пространства имен не подвергаются «тришейкингу» (tree-shaking). Несмотря на то, что JSON-файлы могут загружаться динамически для каждой локали, Nuxt в итоге объединяет их, что означает, что файл locale/zh/about.json загружается на всех страницах. ⏱Читать статью
595
8
Рендер-функции и Teleport в Vue.js #почитать Декларативные шаблоны Vue решают 90% задач фронтенда. Но периодически возникают
Рендер-функции и Teleport в Vue.js #почитать Декларативные шаблоны Vue решают 90% задач фронтенда. Но периодически возникают ситуации, где шаблонного синтаксиса оказывается мало. Нужен более тонкий контроль над рендерингом или возможность вынести часть компонента за пределы его естественной позиции в DOM-дереве. Для таких случаев Vue 3 послал нам render-функции и встроенный компонент Teleport. ⏱Читать статью
598
9
Практическая оптимизация React: ререндеры, Context, списки, INP и code splitting #почитать Оптимизация в React почти всегда с
Практическая оптимизация React: ререндеры, Context, списки, INP и code splitting #почитать Оптимизация в React почти всегда сводится к двум факторам: объёму работы, которую выполняет JavaScript, и частоте (а также «стоимости») перерисовок компонентов. Сам React работает достаточно быстро, но в крупных интерфейсах даже небольшие архитектурные промахи и на первый взгляд безобидные ререндеры начинают заметно бить по производительности. В данной статье мы расскажем про ключевые подходы к оптимизации React-приложений: как уменьшить количество лишних ререндеров, сократить объём вычислений при вводе и скролле и снизить нагрузку стартового JavaScript. ⏱Читать статью
684
10
JSDocs в VSCode #почитать В этой публикации я очень кратко раскрываю, почему переход с IntelliJ IDEA (PhpStorm) на VSCode лом
JSDocs в VSCode #почитать В этой публикации я очень кратко раскрываю, почему переход с IntelliJ IDEA (PhpStorm) на VSCode ломает привычную работу с JSDoc в JavaScript-проектах. ⏱Читать статью
566
11
Заменяем JS обычным HTML #почитать Уже многие годы JavaScript остаётся «рабочей лошадкой» веба. Если вам нужно сделать то, чт
Заменяем JS обычным HTML #почитать Уже многие годы JavaScript остаётся «рабочей лошадкой» веба. Если вам нужно сделать то, что невозможно реализовать средствами HTML и CSS, то обычно найти решение помогает JS. И это замечательно! JS помог расширить возможности пользователей, а также стимулировал прогресс HTML и CSS! Но время идёт, функции HTML и CSS расширяются, поэтому мы должны начать заменять старые и привычные решения на JS новыми, требующими меньше JS. Я ничего не имею против JS, но у него есть иные задачи, кроме как управление аккордеонами и внеэкранными меню навигации... Кроме того, JS нужно скачивать, распаковывать, обрабатывать, после чего он ещё часто тратит память на мониторинг и поддержку фич. Если мы сможем перенести какую-то функциональность JS в нативный HTML или CSS, тогда пользователям придётся скачивать меньше данных, а оставшийся JS сможет уделить внимание более важным задачам, с которыми (пока) не справляются HTML и CSS. ⏱Читать статью
651
12
Atomic CSS: верстка и легкость бытия #почитать Обсудим имеющиеся проблемы в верстке и посмотрим, как атомарный подход их реша
Atomic CSS: верстка и легкость бытия #почитать Обсудим имеющиеся проблемы в верстке и посмотрим, как атомарный подход их решает (или не решает). Разберем основные мифы, посмотрим на лучшие практики этого подхода и сделаем выводы. ⏱Читать статью
568
13
Реактивность без React или как обойтись без id в html элементах #почитать А зачем вообще обходиться без id? Даже не знаю, но
Реактивность без React или как обойтись без id в html элементах #почитать А зачем вообще обходиться без id? Даже не знаю, но это вполне возможно, и приложение будет живым и вполне себе «реактивным». А всю «магию» при этом творит функция, которую я назвал tokenize. Конечно же я, ни в коем случае, не настаиваю на отказе от id. "Элементарные" id никому не мешают и tokenize`у тоже. Но если обходиться без id, то как же получать ссылки на DOM элементы, для обращения к ним? Вот для этого и нужна функция tokenize, которая собирает референсы в удобную структуру с ветками, подветками и листьями (ссылками на DOM элементы). А вот как она это делает, мы с Вами сейчас и разберём. ⏱Читать статью
673
14
Типизация JavaScript через JSDoc #почитать Используете JSDoc для типизации JavaScript? Узнайте, как настроить TypeScript Comp
Типизация JavaScript через JSDoc #почитать Используете JSDoc для типизации JavaScript? Узнайте, как настроить TypeScript Compiler для профессиональной проверки типов, генерации деклараций и интеграции в процесс разработки. ⏱Читать статью
653
15
16 июля встречаемся с JS‑сообществом SberProfi в Сбер.Среде. AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли
16 июля встречаемся с JS‑сообществом SberProfi в Сбер.Среде. AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее. 🔥 Обсудим изменения на реальных кейсах от Сбера, Cloud․ru и Mish. Очные участники увидят спецформат от блогеров и пообщаются с экспертами GigaCode и GitVerse. ⏳ Начало в 17:00, встреча очных гостей - в 16:00. Количество очных мест ограничено – успейте зарегистрироваться!
301
16
Обработчики событий в JavaScript #почитать Если коротко, вы узнаете о самом удобном способе управлять откликом на действия по
Обработчики событий в JavaScript #почитать Если коротко, вы узнаете о самом удобном способе управлять откликом на действия пользователя или браузера. ⏱Читать статью
614
17
🔍Тестовое собеседование на Frontend-разработчика с ex. TeamLead в Сбер 9 июля(в четверг!) в 19:00 по мск приходи онлайн на о
🔍Тестовое собеседование на Frontend-разработчика с ex. TeamLead в Сбер 9 июля(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика. Как это будет: 📂 Даниил Дмитриев, старший разработчик в R-Vision, ex. TeamLead в Сбер, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Даниил будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Даниилу Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_front_bot Реклама. ООО «ШОРТКАТ». ИНН: 9731139396. Erid: 2W5zFFzazVo
585
18
Реактивность без фреймворков (просто эксперимент на чистом JS + Web APIs) #почитать Опишу пример, демонстрирующий, насколько
Реактивность без фреймворков (просто эксперимент на чистом JS + Web APIs) #почитать Опишу пример, демонстрирующий, насколько важна декларативность в вопросах управления поведением «аппки» (за этим стоят вопросы сохранения высокого уровня абстракции и, как следствие, масштабируемости приложения). Задача - сделать управление мутациями DOM более декларативным и, как заявлено в заголовке, использовать реактивность на примере управления состоянием. ⏱Читать статью
487
19
Настройка Jest и React Testing Library: пошаговое руководство для React и Next.js проектов #почитать В этой статье мы подробн
Настройка Jest и React Testing Library: пошаговое руководство для React и Next.js проектов #почитать В этой статье мы подробно рассмотрим процесс настройки среды unit-тестирования веб-приложений на базе React и Next.js с использованием Jest и React Testing Library. Расскажем об установке необходимых зависимостей, создании конфигурационных файлов, настройке Babel и TypeScript, подключении SCSS и SVG, а также организации структуры проекта. Особое внимание уделено специфике настройки Jest в среде Next.js. Материал будет полезен для frontend-разработчиков и команд разработки, которые работают с React или Next.js проектами и хотят внедрить качественное unit-тестирование. ⏱Читать статью
604
20
Насколько быстро браузеры могут обрабатывать данные в Base64? #почитать Недавно в браузерах появились удобные и безопасные фу
Насколько быстро браузеры могут обрабатывать данные в Base64? #почитать Недавно в браузерах появились удобные и безопасные функции для обработки Base64: Uint8Array.toBase64() и Uint8Array.fromBase64(). Хоть у них и есть множество параметров, смысл их сводится к кодированию и декодированию. При кодировании они берут 24 бита из входных данных и разделяют их на четыре сегмента по 6 бит, и каждое 6-битное значение (в интервале от 0 до 63) соотносится с конкретным символом из алфавита Base64: первые 26 символов — это буквы A-Z в верхнем регистре, следующие 26 — a-z в нижнем, затем идут цифры 0-9 и, наконец, символы «+» и «/» в качестве 62-го и 63-го символов. Если длина входных данных не кратна трём байтам, то в качестве заполнителя используется знак «=». ⏱Читать статью
571