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

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

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

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

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

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

 

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

 

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

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

 

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

 

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

Подпишитесь на новости

Windows 11 научилась стирать данные перед переустановкой

Microsoft прокачала облачное восстановление Windows 11: теперь Cloud rebuild умеет не только переустанавливать систему, но и предварительно зачищать накопители. Опция пригодится тем, кто собирается продать, вернуть работодателю или отправить компьютер на переработку и не хочет дарить новому владельцу бонус в виде старых документов и фотографий.

Cloud rebuild загружает из Windows Update чистый образ операционной системы и необходимые драйверы.

В отличие от функции «Сбросить этот компьютер», инструмент не зависит от состояния установленной Windows и может восстановить компьютер даже при серьёзных проблемах с системой.

В экспериментальной сборке Windows 11 Insider Preview 26340.9502 появились два режима: «Удалить файлы» (Remove files) и Удалить и зачистить (Remove & sanitize files). Первый удаляет файлы и переустанавливает ОС, но теоретически оставляет шанс восстановить часть данных, пока они не перезаписаны.

 

Второй вариант действует жёстче: Windows обращается к накопителю и запускает поддерживаемую им процедуру безопасного удаления. После этого восстановить информацию должно стать значительно сложнее.

Правда, Microsoft предусмотрительно не обещает магии и формулирует результат именно как гораздо более трудное восстановлени», а не полную невозможность.

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

Microsoft представила обновлённый Cloud rebuild в экспериментальном канале Windows Insider. Там же появилась возможность удалённо запускать восстановление через Recovery CSP — полезная штука для корпоративных администраторов.

Пока обычным пользователям новая зачистка недоступна. Если тестирование пройдёт без сюрпризов, функция позднее может добраться до стабильных версий Windows 11.

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