Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 19 min ago

Trace Points в C++: диагностика production-систем без перезапуска

Mon, 05/18/2026 - 13:30

Одна из самых неприятных особенностей production-проблем заключается в том, что они почти никогда не происходят тогда, когда разработчик готов их исследовать.

Во время разработки всё работает. На тестовом стенде тоже всё выглядит нормально. Логи кажутся вполне достаточными, а диагностическая информация — продуманной и аккуратно организованной. Но затем в production внезапно появляется странная проблема: соединение иногда сбрасывается без видимой причины, один запрос из нескольких тысяч начинает вести себя иначе, сервер под высокой нагрузкой неожиданно входит в reconnect loop или где-то глубоко внутри системы начинает происходить что-то, что невозможно воспроизвести локально.

И почти всегда в этот момент выясняется одна и та же неприятная вещь: логов, которые уже есть в системе, недостаточно.

Именно здесь традиционное логирование начинает постепенно ломаться.

Большинство систем логирования до сих пор построены вокруг довольно простой идеи: заранее решить, какие сообщения должны писаться постоянно. Разработчик добавляет INFO, WARNING, DEBUG, иногда каналы или категории, после чего приложение отправляется в production с надеждой, что этих логов когда-нибудь хватит для диагностики.

Иногда действительно хватает.

Но реальные production-системы имеют неприятную привычку ломаться не там и не так, как ожидалось. Более того, проблемы часто возникают именно в тех участках кода, которые казались совершенно неинтересными во время разработки.

Первой реакцией обычно становится мысль: “давайте включим DEBUG logging”. На небольших проектах это ещё может работать вполне нормально. Однако в больших системах DEBUG-логи очень быстро превращаются в проблему сами по себе. Они начинают занимать гигабайты, полезная информация тонет в шуме, растёт нагрузка на диск, а иногда и само логирование начинает заметно влиять на производительность и тайминги приложения.

Читать далее

«Сто вопросов» взрослому энтерпрайзу: как мигрировать в облако без API

Mon, 05/18/2026 - 13:26

Помните программу «Сто вопросов взрослому», где герою задают прямые и неудобные вопросы, на которые нельзя ответить отговорками? По-моему, это отличный формат и для общения с отделом разработки. Особенно когда приходится защищать перед техлидами нестандартные решения — например, миграцию вообще без использования облачного API.

В идеальном мире миграция работает как часы: контроллер подключается к платформе по API, автоматически создает сети, разворачивает машины и переносит данные. В суровой реальности крупного энтерпрайза эта схема часто рушится: целевое облако может быть «самописным» и не иметь нужных методов, либо безопасники отказываются пускать стороннее ПО в закрытый контур. Для работы в условиях таких ограничений мы используем режим Direct2Target (D2T). Это подход, при котором данные передаются напрямую на диски заранее подготовленной ВМ, полностью минуя интеграцию с управляющим слоем облака.

В теории концепция звучит изящно, но у инженеров логично возникает скепсис по поводу физики процесса. Я расшифровал техническую сессию с нашего недавнего вебинара. Вопросов под катом, конечно, не сто, но я оставил самую суть — те, что нам чаще всего задают архитекторы: как не утилизировать сеть на 100%, как «наживую» перенести PostgreSQL без потери консистентности, как пробиться через глухой NAT и что делать, если целевая ВМ не завелась.

Кат

LCP под микроскопом: как выжать максимум из самой важной метрики Google

Mon, 05/18/2026 - 13:22

Довольно многие, кто близок к миру web разработки, не раз слышали про метрики web-vitals. По-настоящему значимыми они стали в середине 2021 года — в этот период Google официально стал учитывать метрики в ранжировании для мобильного поиска. С тех пор многие компании стремятся добиться хороших показателей метрик web-vitals. И, пожалуй, самая важная из этих метрик — LCP.


Привет! Меня зовут Николай, я — frontend-разработчик в компании Иви. В зоне моей ответственности как раз и лежит web-версия онлайн-кинотеатра. И в четвертом квартале 2025 года команда web решила сосредоточить ресурсы на метрике LCP. Что такое web-vitals в целом и LCP в частности?

Читать далее

Как 1С-специалисту находить клиентов через Биржу заказов Инфостарт

Mon, 05/18/2026 - 13:17

У многих 1С-специалистов поиск заказов выглядит одинаково: просмотреть список задач, выбрать несколько подходящих, отправить отклики и ждать ответа. Иногда это работает. Но часто хорошие проекты уходят тем, у кого лучше оформлен профиль, понятнее отклик и выше доверие со стороны заказчика.

28 мая в 11:00 мск проведем вебинар для исполнителей заказов на Инфостарте. Разберем, как работать с Биржей заказов не хаотично, а как с понятным каналом привлечения клиентов....

Читать далее

Нестандартное решение для стандартных задач: пробуем вычислительный модуль Luckfox

Mon, 05/18/2026 - 13:05

Привет, Хабр!

Глядя на то, как из-за кризиса производства оперативной памяти цены на одноплатные компьютеры улетают в космос, чувствуешь острую необходимость искать для своих проектов более бюджетные и порой нестандартные решения. Одним из таких решений, которое случайно попалось мне на глаза, стал вычислительный модуль Luckfox Core 1106. В данной статье мы посмотрим его характеристики, соберем операционную систему и запустим I2S-интерфейс для передачи цифрового аудио. Если стало интересно, то добро пожаловать под кат!

Читать далее

Черную дыру фотографировали восемь телескопов. Фото собрал алгоритм

Mon, 05/18/2026 - 13:00

10 апреля 2019 года человечеству показали оранжевый бублик. Журналисты назвали его «первой фотографией черной дыры». Через час картинка была у всех — мемы про глаз Саурона, шутки про пончик, антропоморфизация,  заголовки «ученые сфотографировали невидимое».

Проблема в том, что это не совсем фотография.Точнее сказать, это очень странная фотография: если бы вы использовали телескоп горизонта событий (англ. EHT — далее по тексту) «как камеру» и нажали кнопку, вы бы получили черный квадрат и никакого бублика. Потому что он делает измерения, из которых алгоритм уже собирает изображение…  которого нет.

Вот про этот алгоритм и про то, как 3,5 петабайта данных летели в Бостон самолетом, и пойдет речь.

Читать далее

Такая разная агентская разработка: эволюция программирования с нейросетями

Mon, 05/18/2026 - 13:00

Сегодня уже наверняка никто не станет спорить с тем, что писать код полностью руками — неэффективно. Но даже при разработке с помощью агентов есть оптимальные и не оптимальные пути работы с ними. В статье поговорим на тему того, какие вообще есть варианты агентской разработки и как можно повысить их эффективность.

Читать далее

GPT-шорткаты: что работает, а что нет

Mon, 05/18/2026 - 12:51

Привет! Разобрал популярные шорткаты GPT вроде EL5, /REDTEAM, /BULLET — какие реально выручают каждый день, какие работают через раз, а какие лучше не тратить время.
Смотри шпаргалку!

Как проект социального жилья провалился из-за лифтов и библиотек

Mon, 05/18/2026 - 12:45

21 мая 1901 года в Москве умер Гаврила Солодовников — один из богатейших (и при этом патологически скупых) людей Российской империи. Ходили байки, что он экономил на еде, давал крошечные чаевые, носил заплатанный халат и т. д. Короче, был максимально аскетичным в быту человеком.

Но с миллионами в банке. 

После его смерти семье перепало около 830 тысяч рублей, а 20 миллионов ушло на благотворительность: образование для женщин, профшколы и дома дешёвых квартир в Москве. Причём он очень точно сформулировал техническое задание, чтобы деньги не пошли на «благотворительность вообще».

Треть выделил именно на дома. Это должны были быть не приюты или ночлежки, а нормальное жильё, которое само окупалось бы за счёт аренды.

Город вместе с душеприказчиками просчитал экономику, купил землю, провёл архитектурные конкурсы и построил два огромных дома — для семейных и для одиноких. С лифтами, электричеством, банями, прачечными, столовыми, детсадами и библиотеками.

По цене, доступной обычному рабочему.

Но что-то пошло не так. Проблема была не в деньгах, не в строительстве и даже не в спросе.

Читать далее

5 слоев кэширования в веб-приложениях: Полное руководство для Python-разработчиков

Mon, 05/18/2026 - 12:27

Содержание

Кэширование — ключевой механизм оптимизации производительности веб-приложений, позволяющий снизить задержки и уменьшить нагрузку на серверы. В этой подробной статье рассмотрим пять основных уровней кэширования, применимых в современных веб-системах. Ты узнаешь о внутреннем и внешнем кэше, кэшировании на уровне reverse proxy, браузера и фронтенда. 

Статья будет полезна как начинающим, так и опытным разработчикам, которым интересно углубить понимание кэширования и повысить эффективность своих проектов.

Читать далее

Недельный геймдев: #278 — 17 мая, 2026

Mon, 05/18/2026 - 12:24

Из новостей: продажи Subnautica 2 достигли двух миллионов копий, авторы Indika привлекли 5 миллионов долларов, Windrose продалась тиражом в 2 миллиона копий, продажи Mouse: P.I. for Hire превысили 730к копий.

Из интересностей: как выбрать движок для своей игры, документалка об оригинальной версии Uncharted 4, как Rockstar удалось уместить целый город в память PlayStation 2, почему Unreal доминирует.

Читать далее

[Перевод] Предотвращение лишних реактивных вычислений

Mon, 05/18/2026 - 12:10

Иногда значение меняется на эквивалентное. И здесь существуют разные подходы к отсечению вырожденных вычислений…

Глубоко погрузиться в тему

Не только смартфоны: 5 сфер, где нужны мобильные разработчики

Mon, 05/18/2026 - 12:05

Хабр, привет! Меня зовут Борис Денисенко. Я мобильный разработчик и наставник на курсе «Android-разработчик» в Яндекс Практикуме. У себя в блоге я пишу про Android Automotive OS, но сегодня отойду от частностей и расскажу, в каких ещё сферах может работать мобильный разработчик, если он не занимается приложениями для смартфонов и планшетов.

Читать далее

Wi-Fi против стен. Оцениваем радиопрозрачность наших помещений

Mon, 05/18/2026 - 12:05

Строить Wi-Fi сети в современных домах и офисах - то еще удовольствие. Очень много написано про пересечение каналов, зашумленность эфира и нередко делают сравнение по дальности 2,4 vs 5 ГГц.

Однако есть еще одна характеристика, которая напрямую влияет на сигнал. Это конфигурация пространства. И вот ей уделяют куда меньше внимания. А зря.

Из чего сделаны стены и окна в нашем помещении? Это бетон, пеноблок или дерево? А стекла обычные или металлизированные? А есть ли дополнительные факторы, вроде повышенной влажности? Давайте разберемся, как все это влияет на работу Wi-Fi. Я постарался написать статью максимально простым языком для широкого круга читателей, объясняя все используемые специфичные термины. Поехали!

Читать далее

Claude Code в 54 раза дешевле. Я все протестил

Mon, 05/18/2026 - 12:02

В этой статье я расскажу, как попробовал дешевую альтернативу Claude, создал рабочую программу для macOS и вместо 13$ - потратил 0.25$

Читать далее

80% встреч проводятся по принципу родительского собрания

Mon, 05/18/2026 - 12:00

Люди в среднем не умеют проводить встречи. Меня это дико бесило, когда я впервые столкнулся с качеством принятия решений на родительских собраниях. Оно близко к отрицательному.

Мы тут писали транскрибатор встреч — это когда можно загрузить запись в трекер и получить список задач на выходе.

За время тестов мы узнали, что про архитектуру встречи вообще никто не думает, а чтобы у неё было продолжение — ну там, следующие шаги, ответственные, сроки и задачи на выходе — это вообще необязательно.

Коротко основное, что может показаться вам странным:

— Встреча без повестки — можно не начинать. Для чего встреча? Что мы делаем? Информируем? Генерим идеи? Принимаем решение? Это разные типы встреч.

— Встреча без решений, следующих шагов, ответственных и сроков — впустую.

— Легко перепутать постановку проблемы с поиском решения. Самая частая ошибка.

— Встреча ради встречи не работает. У неё должен быть осязаемый результат: заполненный бриф, принятое архитектурное решение, список задач.

— Есть понятие «социальная леность» (эффект Рингельмана) — чем больше людей в группе, тем меньше усилий прилагает каждый. В конце все кивают, кажется, что договорились, только конкретики нет. Включается диффузия ответственности. Каждый уверен, что задачу пойдёт делать кто-то другой. Итог: через неделю выясняется, что не сделано ничего.

— Теоретический парадокс: чем сложнее вопрос, тем меньше времени группа его обсуждает, и наоборот. Команда собирается обсудить смену архитектуры серверов и дизайн новой формы.

— За время тестов мы поняли главное: заставить людей соблюдать эту гигиену практически невозможно.

Но хотя бы давайте расскажу про основные методологические выводы.

Читать далее

[Перевод] 3/7. Целая прорва связных списков, чтобы выучить Rust: Устойчивый односвязный стек

Mon, 05/18/2026 - 12:00

Списки, которые мы реализовывали до сих пор нельзя назвать настоящими функциональными списками потому что настоящий функциональный список должен быть устойчивым.

Это значит, что если у вас есть несколько ссылок на разные узлы списка, добавление новых голов их не затронет. Похожим образом работает git. Вы можете дописывать изменения к истории проекта, при этом все прежние действия с файлами остаются на месте и доступны в любой момент.

Можно ли написать на Rust устойчивый список? Думаю, вы уже догадались, что да. А как — узнаете из третьей части перевода Too Many Linked Lists.

Читать далее

Как тестировать внешние API в Python: от DI-мока до настоящего HTTP-сервера

Mon, 05/18/2026 - 12:00

Почти каждый сервис, который мы сегодня пишем, ходит куда-то наружу — платёжный шлюз, биллинг, чужой публичный API. И каждый раз, когда садимся писать тесты на этот код, упираемся в один и тот же вопрос: как протестировать клиента, не привлекая внимания санитаров выходя в реальный мир?

Эта статья про то, как выбирать инструмент под эту задачу. Не абстрактно — на одном маленьком, но гордом настоящем сервисе catfact-demo-service, в tests/ которого рядом лежат пять способов протестировать одну и ту же интеграцию. К концу мы их сравним и аргументированно выберем тот, который оставили бы в production-проекте.

Читать далее

Обмани себя: мошенники в TikTok предлагают взломать чужие аккаунты Roblox и угоняют учётные записи «хакеров»

Mon, 05/18/2026 - 11:48

Привет! На связи Илья Савин, ведущий аналитик департамента защиты от цифровых рисков (Digital Risk Protection) компании F6, и сегодня я расскажу об одной из самых коварных и массовых мошеннических схем, которую киберпреступники применяют для угона учётных записей Roblox. Фишинговая схема с сайтами, которые действуют под выдуманным брендом BloxTools, используется против геймеров в России и других странах.

Читать далее

Боль и провокация: почему 90% наставничества в IT бесполезно

Mon, 05/18/2026 - 11:46

Тема менторства в IT давно превратилась в культ. Принято считать, что ментор нужен каждому. Что без ментора карьера не строится. Этим козыряют на собеседованиях. «У нас ты получишь ментора». Джун покупается, потому что ему страшно, он хочет поддержки. А через месяц выясняется, что ментор это просто уставший сеньор, которому тебя назначили приказом. И вместо поддержки ты получаешь часовые созвоны с разговорами ни о чём.

Признать, что менторство не работает, опасно. Слишком много людей поставили на эту карту свою экспертность, свои программы, свои KPI. Реальность упрямая. Подавляющее большинство менторских взаимодействий это пустая трата времени. Иногда безвредная. Чаще вредная.

Читать далее

Who's online

There are currently 0 users and 3 guests online.