Веб Мастерская | Веб разработка и программирование | ИТ | IT
Канал: «Веб Мастерская» — авторский канал Сергея Абрамова и Студии Сергея Абрамова.
Практический подход к веб-разработке «из мастерской» — реальные кейсы, живые разборы, без воды. Не теория из учебников, а то, что реально работает в продакшене.
По всем вопросам обращайтесь на почту: i@yourwriter.ru
СводкаГлавные показатели канала за выбранный период. Изменение — к такому же отрезку перед периодом, если за него есть статистика. Наведите на диаграмму плитки, чтобы увидеть число в каждой точке периода.
Главные числа
ПодписчикиСколько подписчиков у канала сейчас. Волна — число подписчиков в каждой точке периода. Изменение — к началу периода.1230,0 %+0 за период
ПросмотрыСколько сейчас просмотров у постов, вышедших за период. Это не просмотры за день: сколько посмотрели вчера, MAX не сообщает.60▼ 1,1 %было 61
РеакцииСколько реакций у постов, вышедших за период.0было 0
УпоминанияСколько раз канал упомянули другие каналы: ссылки и репосты, без рекламных постов. Чем крупнее круг, тем больше упоминаний в этой точке периода.61▼ 19,6 %было 76по подписке
РепостыСколько раз другие каналы сделали репост постов этого канала (без рекламных постов). Репосты входят и в число упоминаний.28▲ 12,1 %было 25после входа
Средний охват постаСколько просмотров в среднем набирает один пост. Считаем по постам старше двух суток: у свежих просмотры ещё растут. Точки, где есть свежие посты, — пунктиром и полыми кружками: охват всех постов на сейчас, он ещё вырастет.8▼ 2,5 %было 9
ERRКакая доля подписчиков видит средний пост: средний охват ÷ подписчики × 100 %. Линия — ERR в каждой точке периода, пунктир — ERR прошлого такого же периода. Точки с постами моложе двух суток — полые кружки на пунктирном конце линии.6,9 %▼ 0,2 п. п.пунктир — было 7,1 %
Вовлечённость ERКак часто читатели реагируют на посты: реакции ÷ просмотры × 100 %. Засечка на полосе — прошлый период.—реакций на 100 просмотров
Постов в деньСколько публикаций в среднем выходит за день. Клетка — точка периода: чем темнее, тем больше постов в день.1,1▲ 14,9 %было 1,0
Доля рекламыКакая доля публикаций за период похожа на рекламу: маркировка erid, рекламные ссылки и другие признаки. Шкала — рекламная нагрузка по порогам индекса качества: до 10 % — низкая, до 25 % — умеренная, до 50 % — высокая, дальше — очень высокая. Рост доли отмечается красным.3,1 %▲ 0,3 п. п.
ДинамикаСверху — число подписчиков на конец каждой точки периода, снизу — прирост за точку: зелёный — подписчиков стало больше, красный — меньше. Над графиком прироста — самый большой прирост и самая большая убыль. Сколько подписалось и отписалось по отдельности, MAX не сообщает.
Рост аудитории
0подписчиков за период
+1 самый большой прирост · 18 окт 2026−1 самая большая убыль · 19 окт 2026
Оценка каналаОценка канала от 0 до 100 из пяти частей: аудитория, честность роста, рекламная нагрузка, доверие и достоверность расчёта. Полоса — сколько баллов часть набрала из своего максимума. Индекс пересчитывается каждую ночь; каналы сравниваются с похожими — той же категории и размера.
Индекс качества пока не рассчитан. Он появляется у каналов от 500 подписчиков, которые публикуют посты хотя бы раз в неделю, после недели наблюдения.
ОхватыСколько сейчас просмотров у постов, вышедших в каждой точке периода (а не просмотры за день). Подписан рекорд; точка с сегодняшним днём бледнее — день ещё идёт. Средний охват поста — по постам старше двух суток.
Просмотры и охват
60просмотров за период▼ 1,1 %
Средний охват поста — 8 просмотров (посты старше двух суток).
ВовлечённостьER — реакции, делённые на просмотры, в процентах — у постов каждой точки периода. Пунктир — ER за весь период. Изменение — в процентных пунктах к прошлому такому же периоду.
Вовлечённость подписчиков
—ER = реакции ÷ просмотры
За период у постов нет прочитанных реакций.
ЦитируемостьИндекс цитируемости (ИЦ) — насколько часто и какими каналами упоминают этот канал за последние 30 дней, без рекламных постов. Уровень — место среди похожих каналов. Линия — ИЦ в каждой точке периода (в неделе и месяце — средний за её дни).
Индекс цитируемости пока не рассчитан: он появится после ночного расчёта, когда канал упомянут другие каналы.
РитмСколько постов в среднем выходит в каждый час каждого дня недели, время московское: чем темнее клетка, тем больше публикаций. «Лучшее время» — часы, в которые у постов старше двух суток самый высокий средний охват.
Когда и сколько публикует
ПнВтСрЧтПтСбВс
036912151821
Лучшее время:09:0018:00часы, в которые у постов самый высокий средний охват
ФорматыИз чего состоит лента. У каждого поста один формат — по старшинству: репост, видео, фото, ссылка, текст. Полоса и проценты — доля постов формата; справа — средний охват одного поста формата (по постам старше двух суток), полоска — сравнение с самым просматриваемым форматом.
ПубликацииКаждая точка — пост за период: по горизонтали — дата выхода, по вертикали — просмотры, размер точки — реакции, цвет — формат. Так видно хиты, провалы и то, как меняется охват. У крупных каналов показаны 100 самых просматриваемых постов и равномерная выборка остальных — не больше 1 500 точек.
Каждый пост — точка
Выше — больше просмотров, крупнее — больше реакций. Нажмите на точку, чтобы открыть пост.
ВидеоФотоДругоеразмер — реакцииПриближение — кнопками «+» и «−», щипком или Ctrl + колесо мыши; приближенный график сдвигается перетаскиванием
СводкаИтоги выбранного периода: сколько вышло публикаций, сколько у них сейчас просмотров и реакций и средний охват поста. Просмотры — текущие у постов, вышедших в эти дни, а не просмотры за день. Изменение — к такому же отрезку перед периодом, если за него есть статистика.
Итоги периода
Нажмите на показатель — ниже он появится по точкам периода
Просмотрысегодня — день ещё идётТочки с постами моложе двух суток — бледные с пунктиром: их просмотры ещё растут.
РекламаКакая доля публикаций за период похожа на рекламу: маркировка erid, рекламные ссылки и другие признаки. Детектор осторожный, поэтому настоящая доля обычно выше. Шкала — рекламная нагрузка по порогам индекса качества. Ниже — средний охват рекламного и обычного поста и кого рекламирует канал (сайты, на которые ведут ссылки из рекламы).
Что работаетПосты периода с наибольшим числом просмотров. Полоса — просмотры относительно первого места. Превью — картинка поста, у поста без картинки — аватар канала. Просмотры — сколько у поста сейчас.
РитмСколько постов вышло в каждый день периода (бледные столбики) и среднее за 7 дней (линия): видно, разгоняется канал или затихает. Сегодняшний день ещё идёт, поэтому среднее для него считается по вчерашний день.
Публикации по дням
Бледные столбики — дни, линия — среднее за 7 дней: видно, разгоняется канал или затихает
Публикации за деньСреднее за 7 дней
Данные обновлены в 23:05 по Москве. Просмотры — текущие у постов, вышедших в эти дни; средний охват — по постам старше двух суток.
Как считается индекс качества
Коллеги, снова пятница, и у меня для вас свежая подборка новостей из мира веб-разработки! 🔥
🚀 React 19.3 вышел — что нового? Команда React выкатила версию 19.3 с целым рядом улучшений. Ходят слухи, что скоро увидим и React 20, но пока довольствуемся тем, что есть. Если работаете на React — самое время обновиться и протестировать новые фичи в продакшене!
⚡ Next.js 16.4: Turbopack становится стабильным Vercel продолжает радовать. Новый Next.js 16.4 приносит lazy compilation, уменьшенный вывод Turbopack и полную поддержку React 19.3. Скорость сборки выросла, билды стали быстрее — фрилансерам и студиям это точно понравится!
🟢 Node.js 26: Temporal API теперь по умолчанию Долгожданное событие для бэкендеров. В Node.js 26 Temporal API включен по умолчанию, добавились Map upsert helpers и новый V8 14.6. Если вы все еще на старых версиях — пора планировать миграцию, потому что старая добрая Date уже уходит в прошлое.
🛡️ PHP2Shell: критические уязвимости RCE Внимание, бэкендеры на PHP! Обнаружены две критические уязвимости (CVE-2026-109618 и CVE-2026-109619), позволяющие неаутентифицированному злоумышленнику выполнять произвольный код на сервере. Затронуты версии PHP от 5.4 до 8.5 — это практически все, что вы могли встретить в legacy-проектах. Срочно обновляйтесь и проверяйте свои клиенты!
⚠️ Vmanager под ударом: обход аутентификации А здесь у нас Cisco Catalyst SD-WAN Manager (vManager). Уязвимость CVE-2026-76504 позволяет получить права администратора одним POST-запросом — буквально без всякой аутентификации. Если вы используете vManager для управления сетью — патчите инфраструктуру немедленно, иначе ваш сервер может уйти к злоумышленникам.
Коллеги, давайте честно: в 8 из 10 проектов WordPress закроет задачу. Но есть те самые 2 из 10, где вы будете проклинать всё на свете, пытаясь натянуть его на сложный проект. И вот тут на сцену выходит Drupal.
Когда Drupal реально оправдан:
🔹 Сложная структура контента. У вас 15+ типов материалов, связанных друг с другом: статьи → авторы → категории → теги → регионы → ещё какая-нибудь сущность. В WP вы утонете в плагинах ACF и кастомных таксономиях. В Drupal это нативная история из коробки.
🔹 Гибкие права доступа. Когда нужно, чтобы редактор видел одно, менеджер — другое, а клиент из региона Х — только свой кусок. В Drupal система ролей и разрешений гранулярная до неприличия.
🔹 Мультиязычность на стероидах. Не просто «перевели страницу», а 5 языков, разные структуры меню, локализованные таксономии, переводы полей сущностей. Drupal делает это без танцев с бубном.
🔹 Безопасность уровня «госсайт». Не зря на Drupal сидят whitehouse.gov и куча университетов. Модуль Security Team работает как часы, патчи выходят быстро, аудит кода строгий.
🔹 Контент как API. Headless-архитектура, когда фронт на React/Next, а бэк отдаёт JSON. В Drupal это из коробки через JSON:API. В WP — через плагины и боль.
А когда Drupal — оверкилл:
Блог, лендинг, визитка, простой интернет-магазин на 50 товаров. Серьёзно, не мучайте себя. WordPress + Elementor/WooCommerce закроют это за неделю.
Главный критерий выбора: если вы ловите себя на мысли «мне нужна не просто CMS, а фреймворк для управления контентом» — смотрите в сторону Drupal. Порог входа выше, порог боли на третьем месяце поддержки — ниже.
Из практики Переносили корпоративный портал с 200+ страницами и 8 ролями с WP на Drupal. Клиент перестал звонить в 2 часа ночи с вопросом «почему плагин конфликтовал». Бесценно. 😄
Коллеги, 21 октября команда PHP выпустила внеочередные патчи. В ядре языка нашли две критические уязвимости (CVE-2026-109618 и CVE-2026-109619) с оценкой 9.2 из 10, названные исследователями PHP2Shell.
Главная боль: это дыра НЕ в вашем коде и НЕ в плагинах, а в самом интерпретаторе!
Атакующему не нужен ваш логин или баг в приложении. Он просто шлёт запрос, вызывающий исчерпание памяти (memory_limit) или фатальную ошибку.
Механизм обработки ошибок в PHP некорректно убирает за собой мусор, оставляя use-after-free в памяти, который хакер использует для удаленного выполнения шелл-кода (RCE).
Масштаб пугает: PHP работает на трёх четвертях веба. Уязвимы все версии, начиная с 5.4. Эксплойты уже подтверждены на свежих контейнерах WordPress, Drupal, Joomla и Magento. Под ударом даже простая страница «Hello World».
Что делать прямо сейчас:
1. Обновите PHP до 8.2.35, 8.3.36, 8.4.27 или 8.5.12.
2. Обязательно перезапустите воркеры (php-fpm / Apache)! Просто обновить пакеты мало, дыра живёт в процессах.
3. Если вы на 8.1 или старее — официальных патчей нет. Ищите бэкпорты от вендора дистрибутива или срочно планируйте переезд.
4. Временно отключите в php.ini опцию session.upload_progress.enabled=0 — она закрывает один из векторов.
5. Если обновить нельзя, а сервер смотрит в интернет — временно закройте его от внешнего мира.
Ваш код может быть идеальным, но если дырявый фундамент — сервер уже не ваш.
Шаблонные литералы — это не только ${переменная}, но и нормальная многострочность без \n и бесконечных плюсов.
Раньше:
const msg = "Привет, " + name + "!\n" + "Заказ №" + id + " готов.";
Теперь:
const msg = Привет, ${name}! Заказ №${id} готов.;
Обратные кавычки сохраняют переносы строк как в редакторе. Для писем, логов, уведомлений и небольших HTML-фрагментов это просто спасение.
В реальных проектах я часто вижу, как джуны тащат конкатенацию из старых примеров. Но шаблонные литералы — это стандарт с 2015 года, и их можно смело использовать даже без сборки и танцев с бубном.
Но есть два подводных камня.
1. Лишние отступы из кода попадут в строку. Если шаблон выровнен по красоте, эти пробелы окажутся в тексте. Для писем и разметки это часто критично.
2. Если внутрь ${} попадает пользовательский ввод и строка идёт в HTML, шаблон не защищает от XSS. Экранируйте данные.
Отдельная история — тегированные шаблоны. Это когда перед обратными кавычками ставят функцию, например, чтобы автоматически экранировать значения. Для простых задач это не нужно, но сам механизм показывает, что литералы можно расширять.
Совет из практики
Если шаблон уходит в innerHTML, вынесите экранирование в отдельную функцию и оборачивайте все пользовательские значения. Это спасёт от кучи глупых багов.
Практика: видите склейку через + и \n — предлагайте рефакторинг на шаблонные литералы. Код становится короче, а читать его приятнее. Для больших шаблонов лучше шаблонизатор, но для простых задач литералы идеальны.
Коллеги, кто хоть раз видел «Call to a member function on null», тот уже познал боль. Обычно это происходит так: запрос к MySQL вернул ноль строк, а код всё равно пытается вызвать метод у объекта.
Коллеги, хватит тянуть библиотеки ради одной всплывашки! В 2026 нативный Popover API уже спокойно живёт в продакшене, а многие всё ещё пишут велосипеды.
Раньше: плагины, z-index войны, слушатели на document, «а почему оно не закрывается?». Теперь достаточно двух атрибутов:
• поднимет элемент в top layer поверх всего; • закроет его по клику вне и по Esc; • возьмёт на себя базовую доступность; • отдаст :popover-open и ::backdrop для стилей.
Если нужно не переключать, а явно открыть или закрыть:
— Client, Task, Status как сущности; — ClientService и TaskService для логики; — один входной файл с простым роутингом, PDO-обёртку и минимум зависимостей.
Почему это быстрее:
— меньше слоёв — меньше кода, который надо писать и отлаживать; — не нужно спорить о «правильном» разделении ответственности там, где задача на один метод; — правку в продакшене можно найти за 5 минут, а не блуждать по папкам.
Итог: рабочую версию отдали за 5 дней, поддержка занимает минуты, клиент доволен.
Спустя месяц клиент попросил экспорт в Excel. Добавили один метод в сервис и простой шаблон, а не переписывали половину проекта.
Важно: я не против паттернов. Для большого проекта с командой, ролями, API и сложными сценариями слои оправданы. Но для маленькой внутренней системы классическое ООП часто выигрывает у «архитектуры ради архитектуры».
Совет: выбирайте сложность под масштаб задачи. Лучше скучный рабочий код, чем красивый, но не сданный в срок.
Привет, коллеги! 👋 Пока одни паникуют из-за ИИ, мы с вами как всегда спокойно пилим проекты. Но следить за индустрией надо, поэтому я собрал для вас топ-5 новостей веб-разработки за эту неделю.
🚨 Срочный патч для Next.js и React! Vercel выкатили внеочередное обновление безопасности, закрыв критические уязвимости в Next.js и React. Если у вас или ваших клиентов висят проекты на этом стеке, бегом обновляйтесь. Безопасность — это не шутки, коллеги.
🚀 Bun 1.4.3 залетел в прод! Вышел новый релиз Bun 1.4.3, который снова хвастается космической скоростью установки пакетов. Если вы еще не пробовали заменить npm на Bun в своих пет-проектах или на фрилансе — самое время. Сэкономите кучу времени при CI/CD.
🎨 CSS и HTML в 2026 году В нативном вебе активно закрепляются View Transitions, API Popover и Anchor Positioning. Это значит, что сложные попапы и плавные переходы между страницами теперь можно делать без тонны JavaScript. Фронтендерам на заметку — код станет чище, а клиенты будут в восторге!
🛠 Обновление Chrome DevTools В Chrome DevTools добавили поддержку soft navigation в разделе Performance и улучшили работу с MCP-серверами. Теперь отлавливать просадки FPS и следить за производительностью SPA-приложений стало еще удобнее.
📝 WordPress 7.2 уже на подходе Для тех, кто делает сайты для малого бизнеса: Beta 1 версии 7.2 выходит 20 октября. Это финальный крупный релиз года, так что готовимся обновлять клиентские сайты и тестировать новые фишки.
Какую из этих технологий вы уже щупаете в своих проектах? Делитесь в комментах! 👇
Коллеги, давайте без лирики — только цифры, которые заставляют задуматься.
По данным на осень 2026 года:
🔒 ~96–97% страниц, загружаемых в Chrome и Firefox, отдаются по HTTPS. Три года назад было 91%. Прогресс есть, но он замедлился.
🌐 Если смотреть на все зарегистрированные домены (включая заброшенные блоги 2014 года и лендинги, которые «потом доделаю»), картина скромнее — порядка 84–87%. То есть каждый 7-й сайт в интернете до сих пор встречает посетителя надписью «Не защищено».
📱 В мобильном трафике доля HTTPS ещё выше — ~98%, потому что браузеры на смартфонах просто пессимизируют и блокируют mixed-content агрессивнее.
🏢 Среди топ-10 000 сайтов мира — 99,2%. Тут без вариантов: нет сертификата — нет тебя в выдаче, нет в рекламных сетях, нет в доверии пользователя.
А теперь практический вывод, коллеги:
Если вы делаете сайт для малого бизнеса и клиент говорит «да ладно, у нас же не банк, зачем SSL» — покажите ему эти цифры. В 2026 году сайт без HTTPS — это как вывеска «Мы не заботимся о ваших данных». Конверсия падает на 12–18% просто из-за красного замка в адресной строке.
И да, бесплатный Let's Encrypt никто не отменял. Настройка — 15 минут. Автопродление — одна строчка в cron. Отмазка «дорого и сложно» умерла ещё в 2019-м.
Проверьте свои проекты сегодня. Особенно те, что «на поддержке с прошлого года». Один curl -I https://ваш-домен — и сразу видно, не протух ли сертификат.