golang
Отвратительные вопросы для Гофера

Привет!К вам пришёл кандидат, который идеально проходит по всем критериям, но у него "не тот вайбик" или вам нравится давать необоснованные отказы? Тогда эта статья для вас! Я собрал несколько вопросов, которые абсолютно бесполезны в реальной разработке (только если вы не собеседуете Робов Пайков в Google), на которые почти точно ни один адекватный кандидат никогда не ответит. Если отбросить шутки (вы же поняли, что я шучу?), то перед вами фан-подборка каверзных, глупых и душных вопросо…

  • пятница, 11 сентября 2026 г. в 00:00:21
golang
Документация, которая не врёт

В прошлой статье я рассказывал, как лень довела меня до кодогенератора для биндинга и валидации. Закончил я обещанием: теги оказались не приватным входом одного инструмента, а объявлением, которое может прочитать кто угодно. Вот второй читатель.Две одинаково безнадёжные крайностиС документацией к API у меня было два опыта, и оба плохие.Написанная руками. Красивый openapi.yaml, в нём примеры, описания семантики, разложенные по полочкам коды ошибок. Ровно до первого релиза. Потом кто-то добавил п…

  • пятница, 11 сентября 2026 г. в 00:00:19
golang
Как засунуть Protobuf в CEL и выиграть (или проиграть): наш опыт в MWS Cloud Platform

Всем привет! Меня зовут Михаил Голубев, и я работаю в команде Kubernetes Security, MWS Cloud Platform. В этой статье я расскажу об одной попытке оптимизации: как мы залезли под капот CEL и Protobuf, чтобы научить интерпретатор читать данные из бинарного формата на лету без полной десериализации, и почему в итоге от этого кода пришлось отказаться. Почему мы вообще этим озадачились: в одном из наших микросервисов реализовано сканирование приходящих событий по k8s-манифестам. Событий летит много,…

  • пятница, 11 сентября 2026 г. в 00:00:19
javascript
Публикуем секреты в Production без регистрации и SMS

Тесты зелёные, линтер молчит, pull request одобрен. Можно выкатывать — главное, чтобы ничего не упало, но мы ведь 100 раз протестировали, изучили pull request, запустили линтер и уверены в качестве кода.Но опасность поджидала там, где её совсем не ждали.Недавно мне попалась статья, в которой автор разбирал JavaScript на чужом сайте — просто просматривал Source‑файлы, которые сайт отдаёт браузеру. Он обнаружил там API-ключи, хранящиеся прямо в JS. Меня поразило, насколько легко их можно найти. Е…

  • пятница, 11 сентября 2026 г. в 00:00:17
javascript
Next.js, image + metadata + build‑проверка перед продом

В Next.js изображения, metadata и production build находятся в разных частях проекта. next/image занимается загрузкой и геометрией изображений. Metadata API формирует <title>, description, Open Graph и Twitter metadata. next build собирает production‑версию приложения. Ошибки в этих местах часто не мешают работе next dev. Страница открывается, локальная картинка показывается, title есть. На другом домене внешний Image получает запрещённый URL, Open Graph содержит localhost, production bui…

  • пятница, 11 сентября 2026 г. в 00:00:16
javascript
Три кнопки вместо клавиатуры: HID-кликер на ESP32 своими руками

Мне надоело тянуться к клавиатуре и мыши, чтобы пролистнуть ролик, — и я собрал кликер для ПК на базе ESP32. Три кнопки, наподобие пульта для презентаций: две листают ленту стрелками вверх и вниз, третья отправляет F13. Её нажатие ловит собственное расширение браузера и ставит лайк.F13 выбрана не случайно. На большинстве клавиатур ряд функциональных клавиш заканчивается на F12, поэтому F13 гарантированно не столкнётся с чужим сочетанием. Зато событие можно перехватить в расширении и обработать …

  • пятница, 11 сентября 2026 г. в 00:00:14
javascript
CSS в 2026 году: где JavaScript уже не обязателен

Когда работаешь с такими масштабными продуктами, как мы делаем в VK, быстро начинаешь ценить код, который можно не писать. Особенно если речь о небольших сценариях: открыть поповер, анимировать появление блока или подстроить поле под контент. Ещё недавно для таких задач мы почти автоматически тянулись к JavaScript. Но за последние два года CSS сильно расширил свои возможности для задач, связанных с интерфейсом.Я Максим Кузнецов, занимаюсь оптимизацией производительности и улучшением стабильност…

  • пятница, 11 сентября 2026 г. в 00:00:13
javascript
Мы сделали свой UI Kit: 6 компонентов превратились в 30+, а одна ошибка сломала разметку во всех пр…

Практический разбор создания и развития собственной UI-библиотекиКоротко: Собственная UI-библиотека — это не только набор React-компонентов. После появления нескольких проектов-потребителей на первый план выходят API, состояние, совместимость, зависимости, тестирование, документация и версионирование.С чего всё начиналосьКогда в проекте начинает появляться всё больше одинаковых элементов интерфейса, рано или поздно возникает вопрос: зачем каждый раз создавать один и тот же Button, Input и…

  • пятница, 11 сентября 2026 г. в 00:00:11
javascript
Бесплатный AI-сервер на Google Таблицах: параллельные запросы к Gemini для обработки сотен новостей

Мне потребовался умный анализатор потока новостей на специфичную тему: применение AI в энергосбережении и энергобезопасности. Хотелось получать в Telegram нужные заметки в моем заданном формате: заголовок, суть решения, достигнутые KPI, ссылка на первоисточник… И если материал полезен - нажать кнопку и отправить его в рабочий чат.Важное дополнение: 90% новостей иноязычные, а обработанные сообщения нужны на русском.Два месяца мы с ChatGPT и Gemini дорабатывали этот инструмент. Один из полезных п…

  • пятница, 11 сентября 2026 г. в 00:00:10