uz
Feedback
Будни разработчика

Будни разработчика

Kanalga Telegram’da o‘tish

Блог Lead JS-разработчика Автор: @bekharsky По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv Чат: https://t.me/htmlshitchat №5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978

Ko'proq ko'rsatish

📈 Telegram kanali Будни разработчика analitikasi

Будни разработчика (@htmlshit) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 14 326 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 013-o'rinni va Rossiya mintaqasida 46 649-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 326 obunachiga ega bo‘ldi.

08 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -116 ga, so‘nggi 24 soatda esa -9 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 12.23% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.25% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 753 marta ko‘riladi; birinchi sutkada odatda 752 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 13 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent css, api, scroll, --fade, bottom kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Блог Lead JS-разработчика Автор: @bekharsky По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv Чат: https://t.me/htmlshitchat №5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978

Yuqori yangilanish chastotasi (oxirgi ma’lumot 09 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

14 326
Obunachilar
-924 soatlar
-447 kunlar
-11630 kunlar
Obunachilarni jalb qilish
Iyun '26
Iyun '26
+15
0 kanalda
May '26
+114
0 kanalda
Get PRO
Aprel '26
+190
0 kanalda
Get PRO
Mart '26
+215
17 kanalda
Get PRO
Fevral '26
+238
1 kanalda
Get PRO
Yanvar '26
+155
0 kanalda
Get PRO
Dekabr '25
+124
15 kanalda
Get PRO
Noyabr '25
+530
10 kanalda
Get PRO
Oktabr '25
+95
6 kanalda
Get PRO
Sentabr '25
+203
21 kanalda
Get PRO
Avgust '25
+77
0 kanalda
Get PRO
Iyul '25
+251
6 kanalda
Get PRO
Iyun '25
+451
6 kanalda
Get PRO
May '25
+127
6 kanalda
Get PRO
Aprel '25
+364
18 kanalda
Get PRO
Mart '25
+204
11 kanalda
Get PRO
Fevral '25
+253
7 kanalda
Get PRO
Yanvar '25
+193
11 kanalda
Get PRO
Dekabr '24
+329
2 kanalda
Get PRO
Noyabr '24
+524
10 kanalda
Get PRO
Oktabr '24
+306
7 kanalda
Get PRO
Sentabr '24
+243
13 kanalda
Get PRO
Avgust '24
+384
13 kanalda
Get PRO
Iyul '24
+496
12 kanalda
Get PRO
Iyun '24
+363
7 kanalda
Get PRO
May '24
+978
3 kanalda
Get PRO
Aprel '24
+475
22 kanalda
Get PRO
Mart '24
+223
1 kanalda
Get PRO
Fevral '24
+402
9 kanalda
Get PRO
Yanvar '24
+454
18 kanalda
Get PRO
Dekabr '23
+240
3 kanalda
Get PRO
Noyabr '23
+258
2 kanalda
Get PRO
Oktabr '23
+238
7 kanalda
Get PRO
Sentabr '23
+339
0 kanalda
Get PRO
Avgust '23
+341
0 kanalda
Get PRO
Iyul '23
+352
0 kanalda
Get PRO
Iyun '23
+404
0 kanalda
Get PRO
May '23
+211
0 kanalda
Get PRO
Aprel '23
+233
0 kanalda
Get PRO
Mart '23
+323
0 kanalda
Get PRO
Fevral '23
+216
0 kanalda
Get PRO
Yanvar '23
+143
0 kanalda
Get PRO
Dekabr '22
+219
0 kanalda
Get PRO
Noyabr '22
+201
0 kanalda
Get PRO
Oktabr '22
+853
0 kanalda
Get PRO
Sentabr '22
+306
0 kanalda
Get PRO
Avgust '22
+604
0 kanalda
Get PRO
Iyul '22
+1 137
0 kanalda
Get PRO
Iyun '22
+1 040
0 kanalda
Get PRO
May '22
+1 241
0 kanalda
Get PRO
Aprel '22
+472
0 kanalda
Get PRO
Mart '22
+767
0 kanalda
Get PRO
Fevral '22
+315
0 kanalda
Get PRO
Yanvar '22
+163
0 kanalda
Get PRO
Dekabr '21
+608
0 kanalda
Get PRO
Noyabr '21
+93
0 kanalda
Get PRO
Oktabr '21
+341
0 kanalda
Get PRO
Sentabr '21
+530
0 kanalda
Get PRO
Avgust '21
+383
0 kanalda
Get PRO
Iyul '21
+753
0 kanalda
Get PRO
Iyun '21
+1 449
0 kanalda
Get PRO
May '21
+354
0 kanalda
Get PRO
Aprel '21
+1 799
0 kanalda
Get PRO
Mart '21
+384
0 kanalda
Get PRO
Fevral '21
+409
0 kanalda
Get PRO
Yanvar '21
+1 391
0 kanalda
Get PRO
Dekabr '20
+706
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
09 Iyun0
08 Iyun0
07 Iyun+1
06 Iyun0
05 Iyun+2
04 Iyun+4
03 Iyun+3
02 Iyun+2
01 Iyun+3
Kanal postlari
#видео дня Наверное, это слишком жёстко для утра, но всё же: вышла документалка про C++! Думаю, C++ в рекламе не нуждается и,
#видео дня Наверное, это слишком жёстко для утра, но всё же: вышла документалка про C++! Думаю, C++ в рекламе не нуждается и, скорее, интересно, почему так долго. Ведь про тайпскрипт, питон, да даже кложу мы получили документалки очень давно. Что уж говорить, документалка про реакт вышла аж три года назад! Хотя казалось бы. Интересный у авторов порядок выпуска, не то слово. Я плохо знаю современный C++, мои умения остановились курсе на третьем университета. Но посмотреть историю создания и пути к стандартизации было очень интересно, горячая рекомендация. Ссылка: https://www.youtube.com/watch?v=lI7tMxzSJ7w #cpp #documentary

2
#заметка дня Когда-то очень давно я сильно упарывался по кастомизации всего и вся. И речь сейчас даже не о WindowBlinds. Да,
#заметка дня Когда-то очень давно я сильно упарывался по кастомизации всего и вся. И речь сейчас даже не о WindowBlinds. Да, я настолько старый. Речь о хоткеях, файлах конфигурации, кастомных раскладках клавиатуры, бесконечных утилитах для управления окнами (вплоть до тайловых менеджеров), менюбарных приложениях и прочем. В одном только моём конфиге Vim было несколько тысяч строк. Настраиваешь всё, что настраивается, — и на своей машине ты король. Всё интуитивно, быстро, удобно. Никто, кроме тебя, за неё работать уже не сможет. Вот только и ты не сможешь нормально работать на других. Парное программирование становится менее удобным, развёртывание новой системы — отдельной болью. В какой-то момент я понял, что кастомные конфигурации больше ограничивают меня, чем окрыляют. Я не могу просто сесть за компьютер коллеги или студента и что-то показать. Не могу на воркшопе или презентации комфортно пользоваться предоставленной машиной. Все компьютеры вокруг кажутся медленными, неудобными и какими-то неправильными. Тогда я принял довольно жёсткое решение: отказаться от большинства утилит и кастомных конфигов. Вместо этого — выучить стандартные возможности редакторов, системы и системных утилит. Времени это занимает не больше, чем изучение собственных наворотов. В итоге я приобрёл свободу. Ладно, немного слукавил. На рабочем ноутбуке у меня установлен Swish, который позволяет раскладывать окна свайпами по тачпаду. На личном его нет. Но пальцы всё равно время от времени пытаются отправить окно в сторону привычным жестом. И вот сегодня я получил новый ноутбук. На чистую систему с нуля поставил наши рабочие скрипты — и через пару часов уже работал как обычно. Тем временем коллега весь день пытался восстановить свой бэкап с бесконечными конфигурациями и так и не закончил. А как поступаете вы, котаны? До сих пор настраиваете всё и вся или тоже пришли к минимализму?
764
3
The frontend is dead, long live the frontend! Evolve or die. What? Let's figure it out. I've been in this business for a long
The frontend is dead, long live the frontend! Evolve or die. What? Let's figure it out. I've been in this business for a long time: I saw the era of BBS's and the sunset of perl-based sites, I saw the rise of php3 and jQuery, and how React killed everything else. And remember the profession of "HTML/CSS coder" or "Markup developer" (aka "verstalshik")? Well, it looks like classic frontend developers will soon follow them. And it's not just that Claude can finally vertically align an element and you no longer need a senior dev with 15 years of experience for that - it's about the value of frontend as a whole. 🍄 Point 1: damn chats everywhere Frontend is the UI for customers, which gives them the UX they pay for. Frontend devs make the frontend. But what happens if all UIs get replaced by chats with a couple of buttons? - We'll get unification. Literally, right now you can build a fairly complex startup where there's nothing but a landing page and a button to connect an MCP/skill to your Claude Desktop and ChatGPT. Moreover, sometimes a landing page isn't even needed, because everything is already inside agents ecosystems. Somewhat reminds of the Telegram bots story, but at x1000 scale. Why do we need frontend devs if there's no frontend? 🍄 Point 2: disposability For the past week I've been working on a project, running 1-3 hour AI loops in Claude Code and Codex multiple times per day, and of course the resulting code was complete crap. More precisely, overall it was more like the miracle of the creation of the world, but if you zoom it in places it was total garbage. But that doesn't matter, for two reasons: - I could point the agent at any place in the project, show it the browser (mcp devtools is love), write "this s**t doesn't work here, fix it", and it would fix everything - despite extensive ideation, I missed the proper data flow, but even big logical misses were eliminated in half an hour with another loop run So my value as a frontend developer was even lower than my value as a manual tester. And the entire frontend was literally disposable, and whole chunks were redone at my command in literally half an hour per case. Now imagine an agent that watches how user clicks on a site, analyzes it, and then adjusts the UI itself to make the UX better for users. Almost live. Sounds crazy? Let's discuss it in 5 years. 🍄 The survivors Meanwhile, the value of backend and cloud engineers is still much higher, due to questions of security and resources. Although, I saw with my own eyes how Claude Code clicked around in my browser in the Google Cloud Console - it was really scary, though in the end everything went off successfully. So what to do? At least N years from now. - developers - accept fate and develop soft skills, primarily around product management and agent orchestration - companies - look for these soft skills, look deeply into ways of working, not just at whether a person knows something about AI and Claude Code (which will be obsolete again in half a year), plus traditional non-coding skills - another option - go work in chop-shops, where frontend wizards with long beards and 30 years of experience hand-carve Fabergé frontends, while others slather it on with a thick brush of agents, earning millions - there will always be demand for high art and its own clientele Or am I being too gloomy? What do you think about the future of frontend developers as a standalone profession? #Frontend #AI #Coding #SoftwareDevelopment #FrontendDevelopment #WebDevelopment #ClaudeAI #AIAgents #FutureOfWork #DeveloperTools Original post: https://www.linkedin.com/posts/alexander-remi_frontend-ai-coding-activity-7453310522881359872-EHZZ
1 117
4
Собственно, к слову о вчерашнем моём лёгком ранте на тему того, что LLM-ки любят подсовывать древние и неэффективные способы работы. Что, котаны, будем Алекса разносить, или мнение валидно? Мне кажется, тут скорее умирает не фронтенд, а часть рутины, которую мы привыкли называть фронтендом. Да, disposable UI уже реальность, и многие интерфейсы будут генерироваться агентами под задачу. Но от этого требования к UX, доступности, консистентности и дизайн-системам никуда не исчезают. Скорее наоборот. Если интерфейсы начинают собираться на лету, то кто-то должен задавать правила, паттерны и критерии качества для этой генерации. Так что фронтенд не умер — просто теперь наша работа всё меньше про пиксели и всё больше про системы, продукт и пользовательский опыт.
1 142
5
#фишка дня Аккордионы и прочие схлопывающиеся сценарии. Скажи, как ты их анимируешь, и я скажу, кто ты. Если ты их до сих пор
#фишка дня Аккордионы и прочие схлопывающиеся сценарии. Скажи, как ты их анимируешь, и я скажу, кто ты. Если ты их до сих пор анимируешь через max-height, скорее всего, ты — LLM-ка, которая застряла где-то там. Ну буквально, только что сессию демонстрационную проводил. Согласен, height ещё плохо анимируется в auto, хоть и появился interpolate-size. Но ведь гриды никто у нас не отбирал! Да-да, давненько я не напоминал, что гриды прекрасно анимируются и что уже давно не нужны извращения. Но сегодня я пришёл с маленьким дополнением. Все же в курсе, что классика — одна строка грида и 0fr ↔ 1fr? .accordion-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.28s ease; } .accordion-panel[data-open="true"] { grid-template-rows: 1fr; } .panel-inner { overflow: hidden; min-height: 0; } Внутренний блок клипится — высота анимируется без max-height: 9999px. А вот дополнение: в grid-template-rows можно и пиксели, и minmax(). Например, свёрнуто, но кусочек текста виден: grid-template-rows: minmax(48px, 0fr); /* закрыто */ grid-template-rows: minmax(48px, 1fr); /* открыто */ Демонстрация: https://codepen.io/alinaki/pen/QwGryqN Первый аргумент в minmax — минимум, не максимум: 48px снизу, а не «не больше 48». Полное скрытие — по-прежнему 0fr. И да: padding на clip-слой не вешайте — только внутрь контента, иначе и под 0fr торчит, и при открытии прыгает. #css #grid #accordion
1 190
6
#статья дня Выпускник Школы анализа данных рассказал, как попасть на научную стажировку в ML. Степан Платинский работает в международном поиске Яндекса, а параллельно занимается экстремальной статистикой — разрабатывает нейросетевые модели для предсказания редких событий вроде наводнений и обвалов рынка. Исследования вывели его на стажировку в университет KAUST в Саудовской Аравии — один из топ-100 университетов мира. «Стажировка помогла понять, что наука существует не только на Физтехе. Важно выбираться из привычной среды, видеть другие университеты и другие подходы. У меня была возможность поработать с большой исследовательской группой, Ну и наконец, это сильная строчка в резюме: с таким опытом шансы поступить на PhD за границей заметно выше», — отмечает Степан. Сейчас его цель — создать универсальную статистическую модель для предсказания экстремальных событий. Тоже хотите получить международный опыт? Читайте советы Степана.
1 322
7
#статья дня Кармен Ансио написал отличный материал про CSS-функцию linear(). Она появилась уже довольно давно, но в реальных
#статья дня Кармен Ансио написал отличный материал про CSS-функцию linear(). Она появилась уже довольно давно, но в реальных проектах встречается редко — большинство по привычке ограничивается ease, ease-in-out и разными вариантами cubic-bezier(). Причина понятна: обычно linear() воспринимают как способ вручную задать несколько точек на кривой анимации. Не самый удобный инструмент и не очень понятно, зачем он вообще нужен. Ансио показывает гораздо более интересный сценарий. Если заранее рассчитать движение какой-нибудь физической системы — например, пружины — то результат можно представить как последовательность значений и скормить её linear(). Браузер потом просто воспроизведёт эту траекторию. .card { transition: transform 647ms linear( 0, 0.04, 0.15, 0.30, 0.46, 0.59, 0.69, 0.75, 0.79, 0.80 /* ... */ ); } Автор начинает с модели затухающей пружины, показывает уравнение, объясняет параметры системы и сопровождает всё это интерактивными примерами. Можно менять коэффициенты и сразу видеть, как меняется движение. В общем, если у вас есть модель движения и набор точек, CSS уже умеет её воспроизводить. Короче, linear() — это вам не это. Ссылка ещё раз: https://www.carmenansio.com/articles/spring-physics-css #css #easing #spring #linear
1 841
8
#такое дня Знаменитое внимание компании Apple к деталям. И это в 2026 году, когда у нас даже The CSS anchor positioning API и
#такое дня Знаменитое внимание компании Apple к деталям. И это в 2026 году, когда у нас даже The CSS anchor positioning API имеется... #apple #anchor
1 888
9
IT-сфера снова переживает бурные времена. AI-технологии влияют на классические подходы, а компании, которые не успевают адаптироваться - теряют позиции. В этой ситуации решает не количество информации, а её качество. Мы собрали папку каналов для тех, кто не просто «следит за трендами», а реально работает с цифрами, тестирует AI инструменты и адаптирует свои процессы под новые реалии. Только практические советы и реальные кейсы👇🏻 Сохранить папку 📨 Доступно 48 часов❗️
1 285
10
#баг дня В Chrome 147 случилась регрессия. Всем известно, что input type="number" реагирует на колесо мыши, это никогда не бы
#баг дня В Chrome 147 случилась регрессия. Всем известно, что input type="number" реагирует на колесо мыши, это никогда не было проблемой, потому что браузер прекрасно понимал, когда случится прокрутка страницы и отменял событие. Но вот, случилось что случилось: https://issues.chromium.org/issues/508306805 Демо: https://jsfiddle.net/7389xv1z Исправление приземлится только в Chrome 150, так что если вас заденет... работаем по-старинке: input.addEventListener('wheel', e => e.preventDefault(), { passive: false }); #chrome #bug
1 864
11
Так, не прошло и месяца (на самом деле, конечно, прошло), а я выкатил небольшое будущее обновление к пульту! Итак, теперь я поддерживаю Android/Google TV. К сожалению, оттестировано только на паре телевизоров Sony, так что я буду благодарен любым инсайтам. Пришлось попотеть, потому что вместо протокола SSDP телевизоры ищутся по mDNS. А это значит никакого широковещания, только мультикаст. А это значит, письмо в Apple с разъяснениями, получение разрешения, обновление конфига сборкию... Общение с телевизором тоже происходит оригинально — через бинарный формат protobuf, всё как у взрослых. В общем, у кого есть айфоны и телевизоры на Android TV — ссылка на TestFlight: https://testflight.apple.com/join/XXPPYAHN У кого Android-телефоны, могу скинуть APK 🙂 Просьба всё та же — включить логи, попробовать, прислать мне. Никаких данных автоматически не собирается. Спасибо, котаны!
1 717
12
#инструмент дня В прошло мгоду я уже показывал, как удаление фона с изображений постепенно переезжает прямо в браузер: https:
#инструмент дня В прошло мгоду я уже показывал, как удаление фона с изображений постепенно переезжает прямо в браузер: https://t.me/htmlshit/3797 Тогда речь шла про Transformers.js и WebGPU — мол, многие ML-задачи уже спокойно работают локально, без серверов и сервисов. Теперь вот наткнулся на removerized: https://github.com/yossTheDev/removerized Это открытый AI image toolkit, который целиком работает в браузере. Под капотом — ONNX Runtime Web, WebGPU и client-side inference. То есть модели запускаются прямо у вас на устройстве, без отправки изображений на сервер. Из того, что есть сейчас: — удаление фона — апскейл изображений — пакетная обработка — офлайн-режим — кэширование моделей — расширенные настройки А главное, работает. Демо: https://getremoverized.yoss.pro/removerized Да, кстати. ONNX Runtime Web — это браузерный рантайм для запуска ML-моделей через ONNX. Если очень грубо: штука, которая позволяет запускать нейронки прямо в браузере через WebGPU/WebAssembly, без Python, CUDA и отдельного бэкенда. Сайт: https://onnxruntime.ai/docs/get-started/with-javascript/web.html GitHub: https://github.com/microsoft/onnxruntime #ai #opensource #webgpu #ml
1 642
13
Не удержался.
Не удержался.
2 171
14
#фишка дня Есть пропозал, который предлагает добавить в canvas возможность напрямую использовать результат рендера DOM-элемен
#фишка дня Есть пропозал, который предлагает добавить в canvas возможность напрямую использовать результат рендера DOM-элемента. Вот: https://wicg.github.io/html-in-canvas/ Он вводит метод drawElementImage(): ты передаёшь HTML-элемент, браузер сам делает для него layout, применяет стили и рассчитывает текст, а затем этот уже готовый результат можно рисовать в canvas. В отличие от текущих подходов вроде html2canvas, здесь не происходит пересборки DOM в изображение вручную. Используется нативный рендеринг браузера, поэтому сохраняются точность текста, layout и поведение, которое уже есть в DOM. В Chrome это уже можно попробовать через флаг: chrome://flags/#canvas-draw-element Собственно, это уже вполне себе рабочая реализация! А в качестве примера сегодня — библиотека Liquid DOM. Ага, очередной Liquid Glass! Только очень красивый и рабочий: https://github.com/AndrewPrifer/liquid-dom Демо: https://liquid-dom-showcase.vercel.app/ Потрясающая штука получается. И примеров использования уже полно! Но, как обычно, ждём другие браузеры :( #canvas #webgl
2 229
15
Вебинар «Быстрый запуск AI-сценариев с vGPU» 21 мая эксперт VK Tech в прямом эфире покажет, как использовать облачные GPU, чт
Вебинар «Быстрый запуск AI-сценариев с vGPU» 21 мая эксперт VK Tech в прямом эфире покажет, как использовать облачные GPU, чтобы сэкономить на аренде полного объема ресурсов GPU. Регистрируйтесь, чтобы узнать: — какие сценарии бизнеса закрывают GPU VK Cloud, — как выбрать видеокарту или кластер GPU под свою задачу, — когда аренда доли GPU выгоднее целой карты, — где прячется реальная выгода при использовании vGPU. Во время вебинара мы развернем виртуальную машину с vGPU и покажем, какую пользу бизнесу могут принести эмбеддинговая модель и модель высокоэффективного распознавания текста и анализа документов. Вы узнаете, как быстро поднять виртуальную машину, выбрать профиль vGPU под задачу и подготовить среду для ML-работы. Регистрируйтесь и смотрите трансляцию 21 мая в 17:00. Зарегистрироваться
0
16
#фишка дня Я не думал, что доживу, но, похоже, скоро можно будет вписывать текст в контейнер без хаков с vw/vh и даже без скр
#фишка дня Я не думал, что доживу, но, похоже, скоро можно будет вписывать текст в контейнер без хаков с vw/vh и даже без скриптов. Сразу пример (нужны флаги! ниже): https://codepen.io/cssgrid/pen/emBZzPL Фича называется text-fit. Это часть экспериментального CSS (обсуждается в рамках CSS Text / Sizing), и идея тут очевидна: вписать текст в контейнер. Вот спека в процессе: https://drafts.csswg.org/css-text-4/#text-fit-property Пока это всё работает только за флагом chrome://flags → Experimental Web Platform features. Но уже хорошо же! #css #text #fit
1 980
17
#заметка дня А помните (конечно же помните!) как мы с вами обсуждали CSS Custom Highlight API для реализации подсветки кода?
#заметка дня А помните (конечно же помните!) как мы с вами обсуждали CSS Custom Highlight API для реализации подсветки кода? Ну вот же, положила: https://t.me/htmlshit/2715 Так вот, а почему бы не объединить подсветку CSS с поиском по тексту? Ну в самом деле, интересно же, как это реализовано, например, в текстовых редакторах или браузерах при поиске по странице. Хотя бы на минимальном уровне. А реализовано это через, простите, обход дерева! Алгориииииитмы Ладно, нам не придётся самим писать обходчик, он уже имеется! Вот: https://developer.mozilla.org/en-US/docs/Web/API/Document/createTreeWalker Главное — это понять, какой параметр фильтрации узлов передать. Ведь объектная модель документа она не только из тегов состоит, там как минимум параллельно идут атрибуты, текст, комментарии... Нам незачем искать вообще по всему. Ну в нашем случае всё просто: NodeFilter.SHOW_TEXT — ищем по текстовым нодам, словам. Ну а дальше всё просто: проверяем регуляркой на совпадения и запускаем подсветку. Уж это за нас теперь может и браузер делать: https://codepen.io/alinaki/pen/zxvPbRJ Да, теперь можно и ваших камтомных селектах красиво подсветить результат фильтрации. Пользуемся, котаны. #css #highlight
1 812
18
Поздравляем, вы на 1 шаг ближе к работе мечты 🥳 Осталось только прочитать этот пост, подписаться на канал и откликнуться на
Поздравляем, вы на 1 шаг ближе к работе мечты 🥳 Осталось только прочитать этот пост, подписаться на канал и откликнуться на вакансию 😉 Avito Career* — место, где Авито делится актуальными вакансиями и стажировками для бэкенд-разработчиков. Подписывайтесь, чтобы найти ту самую работу ✨ *карьера
1 524
19
#статья дня GitHub выкатил отличный пост о том, как они ускоряли рендеринг диффов в пулл-реквестах (исконно русские слова) —
#статья дня GitHub выкатил отличный пост о том, как они ускоряли рендеринг диффов в пулл-реквестах (исконно русские слова) — и внезапно выяснили, что браузеру становится плохо, когда в PR десятки тысяч строк. Вот ссыль сразу: https://github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/ Главная проблема оказалась в том, что каждая строка diff-а была маленьким React-стартапом: 8–13 компонентов, куча DOM-нод и отдельные event handlers почти на всё подряд. Старый подход выглядел примерно так: <DiffLine> <LineNumber /> <SyntaxHighlight> <Token /> <Token /> </SyntaxHighlight> </DiffLine> И конечно же: <div onMouseEnter={...} onMouseLeave={...} onClick={...} /> Когда таких строк 10 000+, Chrome начинает потреблять память не в себя. А дальше случилось прекрасное: GitHub героически переоткрыл event delegation — технику, которую jQuery нормально объяснял ещё лет 15 назад. Оказалось, что один обработчик событий на контейнер внезапно быстрее, чем 30 тысяч onMouseEnter на каждую строку. Кто бы мог подумать. Новый вариант: <table onMouseMove={handleHover}> <tr data-line="42"> <td>const value = 1;</td> </tr> </table> function handleHover(e) { highlight(e.target.dataset.line) } В итоге GitHub выкинул 74% React-компонентов, почти вдвое снизил потребление памяти и ещё удалил пару лишних <code>-тегов из каждой строки, потому что 20 000 ненужных DOM-элементов — это всё ещё 20 000 ненужных DOM-элементов. Мораль истории максимально простая: abstraction is not free. Иногда один обработчик событий и туповатый плоский код работают лучше, чем архитектура мечты из 400 reusable-компонентов, custom hooks и трёх уровней composition. #github #react #virtualization
1 852
20
Вам нужно отправить 8 полей информации боту/форме. Каждое поле - это одно слово или число. 1️⃣ Разговорный - один вопрос за раз, вы отвечаете, появляется следующий. 2️⃣ Шаблонный - вы видите все 8 полей сразу, заполняете и отправляете одним сообщением.
1 946