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

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

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

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

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

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

 

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

 

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

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

 

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

 

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

Positive Technologies займёт ещё 5 млрд руб. на развитие и рефинансирование

Positive Technologies решила не ждать, пока декабрьское погашение облигаций постучит в дверь. Компания готовит новый выпуск долговых бумаг объёмом 5 млрд рублей и заранее собирает запас ликвидности. Срок обращения облигаций составит около двух с половиной лет — 930 дней.

Купон будет плавающим: компания рассчитывает установить спред не выше 1,5–2 процентных пунктов к действующей ключевой ставке Банка России.

Собранные деньги Positive Technologies планирует направить на укрепление финансовой устойчивости, формирование резервного портфеля ликвидности, рефинансирование и оптимизацию долга.

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

По словам операционного директора Positive Technologies Андрея Кузина, текущий рынок позволяет привлечь деньги на выгодных условиях: ликвидности много, а интерес инвесторов к облигациям финансово устойчивых компаний растёт. Долговой портфель Positive Technologies сейчас на 100% состоит из облигаций.

Приём заявок запланирован на 7 августа 2026 года с 11:00 до 15:00 мск. Купить бумаги смогут как институциональные, так и розничные инвесторы — через крупнейшие банки и брокерские компании.

Уверенности эмитенту добавляют кредитные рейтинги. В марте АКРА подтвердило рейтинг ПАО «Группа Позитив» на уровне AA–(RU) и повысило прогноз до «Позитивного». В июне «Эксперт РА» сохранило рейтинг ruAA, изменив прогноз с «Развивающегося» на «Стабильный».

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

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