Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

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

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

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

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

MacSync научился воровать криптовалюту и прятать компоненты в iCloud

Зловред MacSync для macOS заметно прокачался. Теперь он приходит не один, а в компании стилера и бэкдора, крадёт пароли и данные криптокошельков, а затем оставляет злоумышленникам удалённый вход на заражённый Mac.

Обновлённую версию обнаружили эксперты «Лаборатории Касперского». MacSync появился в 2024–2025 годах как ответвление стилера AMOS, но найденный в сентябре 2026 года вариант получил более сложную многоступенчатую цепочку заражения.

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

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

 

После запуска MacSync изображает скачанное приложение и просит пароль администратора. Затем показывает поддельное уведомление macOS о повреждении программы и предлагает переместить её в корзину.

Только ничего в корзину не отправляется: стилер остаётся в системе и начинает собирать историю браузера, cookie, логины, пароли, данные Telegram и криптокошельков, а также настройки SSH и ZSH.

Второй компонент маскируется под Finder и работает как бэкдор. Через него атакующие могут выполнять произвольный код, похищать отдельные файлы, устанавливать расширения браузера и даже заменять легитимное приложение Ledger вредоносной версией. Основная цель такой подмены, вероятнее всего, — кража криптовалюты.

Пользователям советуют загружать программы только с проверенных ресурсов и настороженно относиться к неожиданному запросу пароля администратора.

RSS: Новости на портале Anti-Malware.ru