Библиотека Go для собеса | вопросы с собеседований
6.88K subscribers
225 photos
8 videos
1 file
441 links
Вопросы с собеседований по Go и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/0b524a15

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://t.iss.one/proglibrary/9197
Download Telegram
Почему одна и та же выборка чисел с плавающей точкой даёт разные итоги при разном порядке сложения

Потому что компьютер хранит десятичные дроби приблизительно (в двоичной форме IEEE-754), и при каждом сложении происходит округление. Меняя порядок слагаемых, Вы меняете последовательность округлений — отсюда чуть разные итоги.
Говоря иначе: сложение таких дробей неассоциативно.

Что происходит:
• Числа вроде 0.1/0.2/0.3 не представимы точно, их двоичные «хвосты» обрезаются.
• На каждом шаге суммирования происходит новое округление. В другом порядке эти округления происходят в других местах.
Маленькие слагаемые рядом с большими могут «теряться», почти противоположные — «съедать разряды».
• Разница обычно микроскопическая, порядка 1–2 ULP — минимальных шагов представления, но для строгого сравнения это уже другие числа.

Как с этим жить:
• Не рассчитывайте на «точное равенство» результатов — сравнивайте с допуском (абсолютным/относительным).
Фиксируйте порядок вычислений и применяйте более устойчивые схемы суммирования на длинных рядах.
• Для денег и отчётности используйте десятичные или целочисленные представления — там нужна точность без двоичной погрешности.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
Какова роль middleware при построении HTTP-слоя в Go

Middleware в Go — это промежуточные обработчики, которые перехватывают и обрабатывают HTTP-запросы и ответы до того, как управление попадёт к конечным хендлерам.

Назначение. Аутентификация и авторизация, логирование, обработка ошибок, ограничения частоты, CORS и др.

Форма в Go. Обычно это функции, совместимые с http.Handler/http.HandlerFunc, что позволяет строить цепочки middleware, легко комбинируя и переиспользуя их в разных участках приложения.

Пример сценария. Middleware аутентификации проверяет валидный токен в заголовке запроса; при отсутствии или некорректности немедленно возвращает ошибку, не передавая управление дальше.

Инструменты. Популярные решения с поддержкой middleware: Gorilla Mux, Gin, Echo.

🐸 Библиотека Go для собеса
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3