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

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

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

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

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

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

 

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

 

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

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

 

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

 

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

Цифровой рубль разрешат заводить подросткам с 14 лет

Банк России планирует к концу 2027 года разрешить подросткам открывать счета цифрового рубля с 14 лет. Сейчас доступ к новому виду кошелька получили только совершеннолетние граждане, но регулятор уже готовит расширение аудитории.

О работе над такой возможностью рассказала заместитель председателя ЦБ Зульфия Кахруманова во время открытого онлайн-урока.

По её словам, Банк России очень надеется предоставить доступ гражданам от 14 до 18 лет в конце следующего года, сообщает «Интерфакс».

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

Цифровой рубльтретья форма национальной валюты наряду с наличными и деньгами на банковских счетах. Он выпускается Банком России и хранится на единой платформе ЦБ, а доступ к кошельку пользователь получает через приложение подключённого банка.

Пилот проекта стартовал ещё в августе 2023 года. С 1 сентября 2026-го начался масштабный запуск: крупнейшие банки и крупные торговые компании должны предоставлять клиентам возможность проводить операции с цифровой валютой. Граждане старше 18 лет уже могут открывать соответствующие счета.

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

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