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

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

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

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

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

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

 

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

 

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

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

 

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

 

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

Meta пропустила десятки рекламных объявлений с сексуализацией детей

Рекламная модерация Meta (признана экстремистской и запрещена в России, как и её соцсети ниже) снова показала себя во всей красе. За девять месяцев на Facebook, Instagram, Messenger и Threads появилось более 50 платных объявлений с сексуализированными изображениями несовершеннолетних, в том числе созданными с помощью ИИ.

Некоторые объявления крутились ещё в начале августа, выяснили исследователи Tech Transparency Project (TTP).

Речь не о публикациях случайных пользователей, затерявшихся в ленте. Это реклама, которую системы Meta проверили, одобрили и показали аудитории в США, Великобритании и более чем десяти странах Европы. Отдельные объявления увидели несколько тысяч человек. Часть из них вела на сервисы для раздевания людей на фотографиях и приложения с ИИ-порнографией.

Нарушения обнаружили в собственной библиотеке рекламы Meta. Причём некоторые материалы спокойно лежали там месяцами. Исследователи сообщили о них в Национальный центр помощи пропавшим и эксплуатируемым детям США, а журналисты WIRED обратились за комментарием к Meta. Только после этого компания удалила объявления.

В Meta заявили, что борются с сексуальной эксплуатацией, а большинство найденных объявлений якобы почти никто не увидел. Компания также сослалась на новую ИИ-систему, которая должна отсеивать запрещённую рекламу ещё при загрузке. Вот только часть объявлений появилась уже после её запуска. Более того, около 30 новых материалов исследователи нашли буквально перед публикацией расследования.

Некоторые объявления размещали аккаунты почти без подписчиков, а среди рекламодателей фигурировали китайские компании. Одно из приложений, на которые вела реклама, находилось в App Store. Apple удалила его после обращения WIRED.

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