Sobes.tech

Зачем сортировать kwargs при построении ключа memoization-кэша?

Middle+
собес1
2

Сколько времени в среднем за рабочий день вы тратите на написание кода?

Senior
Google
2

Есть ли у вас опыт работы с ML?

Middle+
ВГТРК СМОТРИМ
2

Какие подходы и техники вы знаете для ускорения и повышения эффективности SQL-запросов?

Middle
Virtusa
2

Готовы ли вы работать из офиса и какие у вас требования к графику работы?

Senior
ГРЧЦ, ФГУП
2

Чем плагины отличаются от MCP-серверов?

Senior
ГРЧЦ, ФГУП
2

Написать декоратор rate_limit(max_calls, period), который ограничивает число вызовов функции скользящим окном по времени: не более max_calls вызовов за любые последние period секунд. При превышении лимита вызов не должен выполняться. Учесть, что функцию могут вызывать из нескольких потоков. Пример: @rate_limit(max_calls=5, period=60) шестой вызов в течение минуты должен быть отклонён.

Senior
АВ Софт
2

С какими сервисами AWS вы работали?

Middle
Virtusa
2

Можно ли хранить секреты в payload JWT?

Middle+
Лучи
2

Что такое JWT-токен, из каких частей он состоит и какую проблему решает?

Middle+
Лучи
2

Проходили ли вы интервью в компании ранее?

Senior
Google
2

Насколько тебе интересно рассмотреть предложение и описанные команды?

Middle+
Лучи
2

Как индексы влияют на производительность базы данных?

Senior
АВ Софт
2

Нужна ли вам поддержка компании для получения разрешения на работу?

Senior
Google
1

# Написать код для функции cache. Это декоратор, который должен # запоминать, что вернула декорированная функция, и возвращать запомненное # значение при повторном вызове с одинаковыми аргументами. # Можно считать, что все аргументы хешируемые. # Использовать только стандартную библиотеку Python. def cache(backend=None): if backend is None: backend = {} def decorator(func): def wrapper(*args, **kwargs): key = (args, tuple(sorted(kwargs.items()))) result = backend.get(key) if result is not None: return result result = func(*args, **kwargs) backend[key] = result return result return wrapper return decorator calls = {"count": 0} backend = {} @cache(backend=backend) def add(a, b): calls["count"] += 1 return a + b assert add(1, 2) == 3 assert calls["count"] == 1 assert add(1, 2) == 3 assert calls["count"] == 1 assert len(backend) == 1 print("OK")

Middle+
собес1
1

Как backend взаимодействовал с ML-моделью: где она хостилась и по какому протоколу вы с ней общались?

Middle
Sapiens Solutions
1
/530