Hacker News Digest

Тег: #error-handling

Постов: 4

Cloudflare outage on November 18, 2025 post mortem (blog.cloudflare.com) 🔥 Горячее 💬 Длинная дискуссия

18 ноября 2025 года Cloudflare столкнулся с масштабным сбоем сети, начавшимся в 11:20 UTC. Проблема проявлялась пользователям как страница ошибки с указанием сбоя в сети Cloudflare. Инцидент не был вызван кибератакой, а возник из-за изменения разрешений в системе баз данных, что привело к удвоению размера файла функций, используемого системой управления ботами. Программное обеспечение для маршрутизации трафика имело ограничение на размер файла, ниже удвоенного значения, что вызвало его сбой.

Сначала Cloudflare ошибочно подозревал DDoS-атаку, но позже определил корень проблемы. К 14:30 UTC основной трафик был восстановлен, а к 17:06 все системы работали нормально. Система демонстрировала необычное поведение — периодические восстановления каждые 5 минут, когда генерировались хорошие файлы конфигурации. Компания принесла извинения за влияние на клиентов и интернет, признав, что сбои в их системе неприемлемы.

by eastdakota • 18 ноября 2025 г. в 23:31 • 1360 points

ОригиналHN

#cloudflare#configuration-management#database#ddos#error-handling#rust#system-monitoring#telemetry

Комментарии (800)

  • Использование .unwrap() в критическом коде привело к панике и сбою системы после обновления конфигурации.
  • Отсутствие staged rollout для конфигураций и недостаточный мониторинг замедлили диагностику сбоя (3 часа).
  • Обсуждаются архитектурные риски зависимости от крупных провайдеров и необходимость отказоустойчивых систем.
  • Предлагается усиление обработки ошибок, глобальных kill switches и проверки конфигураций как пользовательских данных.
  • Подчеркивается важность наблюдаемости (telemetry) для быстрого обнаружения паник и сбоев в критических сервисах.

Go subtleties (harrisoncramer.me)

Статья представляет собой сборник 15 тонкостей и малоизвестных возможностей языка Go, собранных автором за год работы с языком. Начиная с Go 1.22, можно использовать range с целыми числами для простого создания циклов. Интересно, что оператор ~ позволяет ограничивать универсальные типы, что полезно для типизированных констант. Пакет embed позволяет встраивать файлы прямо в бинарник, упрощая развертывание. Однако есть и подводные камни: len() со строками возвращает количество байтов, а не символов, что может привести к неожиданным результатам при работе с Unicode.

Особенно коварна работа с nil-интерфейсами: даже если значение nil, тип переменной остается ненулевым интерфейсом, что делает проверку a == nil ложной. Это может серьезно затруднить отладку кода, возвращающего интерфейсы. Также стоит отметить возможность переименования целых пакетов через LSP и индексированную строковую интерполяцию для уменьшения повторений. Функция time.After в сочетании с select предоставляет элегантный способ установки таймаутов для горутин.

by darccio • 13 октября 2025 г. в 07:42 • 191 points

ОригиналHN

#error-handling#generics#go#golang#goroutines#interfaces#lsp#nil#string-interpolation#unicode

Комментарии (144)

  • Go-разработчики обсуждают, что язык не даёт уверенности в надёжности кода из-за непредсказуемого поведения nil и интерфейсов, а также отсутствия нормального обработчика ошибок.
  • Сообщество отмечает, что вместо удобства чтения кода ради скорости компиляции выбрали неинтуитивную интерполяцию строк, что делает отладку тяжелее.
  • Разработчики делятся личными историями о том, как нулевые указатели и интерфейсы ведут себя непредсказуемо, и это продолжает подстерегать даже опытных разработчиков.
  • Обсуждение также затрагивает, что Go в целом поощряет писать простой код без изощрённых абстракций, что ведёт к быстрому и легкому ПО, но в то же время лишает разработчика выразительных средств.
  • Некоторые участники признают, что отсутствие обобщённых дженериков до недавнего времени и отсутствие перечислений кроме как iota и error в качестве встроенных типов делает язык менее выразителен, чем он мог бы быть.

LLMs are mortally terrified of exceptions (twitter.com) 🔥 Горячее

Twitter/X теперь требует включённый JavaScript и блокирует просмотр без него. Пользователи с блокировщиками скриптов или расширений, которые ограничивают JS, теперь видят сообщение о недоступности JavaScript и предлагают «попробовать снова». Это делает невозможным просмотр даже статического контента без JS.

by nought • 09 октября 2025 г. в 17:16 • 283 points

ОригиналHN

#error-handling#exceptions#javascript#llm#rlhf#twitter

Комментарии (135)

  • Обсуждение выявило, что LLM-ы склонны к чрезмерно защитному стилю кода, который, как выясняется, может быть вызван RLHF и набором данных, где «правильный» код — это тот, который перестраховывается на каждом шаге.
  • Участники обсудили, что «защитный» код может быть не только избыточным, но и логически неверным, поскольку он может маскировать ошибки, которые в продакшене не должны быть проглочены.
  • Некоторые участники отметили, что вместо того, чтобы учить модель писать «правильный» код, стоит сфокусироваться на том, чтобы она училась различать, когда действительно нужна обработка ошибок, а когда можно обойтись без нее.
  • Также было отмечено, что вместо того, чтобы писать в защитном стиле, лучше бы научить модель писать код, который не делает глупых ошибок в первую очередь.

Two things LLM coding agents are still bad at (kix.dev) 🔥 Горячее 💬 Длинная дискуссия

LLM-агенты пока не умеют копировать и вставлять код — они только «записывают» его заново, что делает невозможным точный рефакторинг. И они не задают вопросов, а сразу делают предположения и бьются об стену. Эти две особенности делают LLM-агентов похожими на самоуверенных стажёров, а не на полноценных разработчиков.

by kixpanganiban • 09 октября 2025 г. в 04:33 • 298 points

ОригиналHN

#coding-agents#error-handling#ide#large-language-models#llm#refactoring

Комментарии (340)

  • LLM-агенты не умеют копировать-вставлять код, а только переписывают его из памяти, что может привести к ошибкам.
  • Модели не задают уточняющих вопросов, что приводит к тому, что они делают предположения и ошибаются.
  • LLM не могут использовать встроенные инструменты рефакторинга и вместо этого пытаются реализовать его самостоятельно, что может привести к ошибкам.
  • Агенты не могут взаимодействовать с IDE и другими инструментами, что делает их менее эффективными.
  • Модели не могут задавать уточняющие вопросы, что приводит к тому, что они делают предположения и ошибаются.