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

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

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

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

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

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

 

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

 

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

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

 

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

 

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

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

Владельцев VPS предупредили о блокировке IP из-за открытых сервисов

Российские системы фильтрации могут активно сканировать публичные IP-адреса и блокировать серверы, на которых обнаружены средства обхода ограничений. Об этом рассказал пользователь Хабра под ником 0ka, обративший внимание на участившиеся жалобы владельцев VPS.

По версии автора публикации, примерно с декабря 2025 года для анализа серверов применяется Active Probing — активное зондирование адресов с целью определить запущенные сервисы, открытые порты и особенности их конфигурации.

Под проверку могут попадать веб-серверы, SSH, VPN и прокси-инструменты. Особое внимание, как утверждается, привлекают серверы без нормального DNS-имени, нестандартные порты и HTTPS-сертификаты, маскирующиеся под домены Яндекса, Apple, Google, Rutube и других известных площадок.

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

Официального списка сервисов и конфигураций, которые могут привести к блокировке IP, в открытом доступе нет. Независимого подтверждения того, что Роскомнадзор массово сканирует весь диапазон IPv4 именно по описанной схеме, также не представлено. Поэтому выводы автора стоит считать техническими наблюдениями, а не опубликованным регламентом ведомства.

Для самостоятельной проверки VPS предлагается воспользоваться поисковой платформой Censys или просканировать собственный сервер через Nmap. Стоит изучить открытые порты, сертификаты и неизвестные службы, а ненужные компоненты — отключить.

Уже действующую блокировку можно попытаться выявить сравнением трассировки до доступного и недоступного адресов из российской сети.

В опросе под публикацией 37 из 94 участников сообщили, что столкнулись с блокировками, а 10 из 43 нашли на своих серверах потенциально проблемные сервисы.

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