Python
Расскажи про стратегии ветвления в Git
Что такое статический анализатор и линтеры?
Какие подходы к координации действий между микросервисами существуют? Назови два основных вида.
Какие проблемы при использовании ProcessPool? Какие есть нюансы работы с процессами?
Какие в целом есть в Python способы многозадачно делать работу и для чего каждый из них нужен?
Есть ли проблемы с передачей объектов по Unix-сокету между процессами? Как избавиться от сериализации?
Расскажи про свой основной стек, в котором больше всего опыта.
Как вы будете выбирать между несколькими офферами? Что для вас важно?
Расскажите про декораторы в Python: что это за паттерн и как реализовать декоратор с аргументами?
def f_g0: >>>>yield 43 >>>>return 66 print(f_g0()) Что будет выведено на экран в результате выполнения кода?
В какой правильной последовательности должна работать выдача денег в реальном банкомате?
class ATM(SKD): def __init__(self, atm_api: "SKD"): self.atm_api: SKD = atm_api self.bills_count: dict[int:int] = {bill: self.atm_api.count_banknotes(bill) for bill in BILLS} def withdraw(self, amount: int) -> bool: bills_plan: dict[int: int] = {} remaining = amount for bill in BILLS: available = self.bills_count[bill] take = min(remaining // bill, available) if take > 0: bills_plan[bill] = take remaining -= take * bill if remaining != 0: return False bills_count_const = {50: 0, 100: 2, 500: 0, 1000: 0, ...}, expected = True @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, False), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, True), ({5000: 1, 1000: 0, 500: 0, 100: 2, 50: 0}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(FakeSDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected
from file import ATM, SDK import pytest BILLS = {5000, 1000, 500, 100, 50} @pytest.mark.parametrize( "bills_count_const,expected", [ ({5000: 0, 1000: 0, 500: 0, 100: 0, 50: 0}, False), ({5000: 100, 1000: 100, 500: 100, 100: 100, 50: 100}, True) ] ) def test_false(bills_count_const, expected): atm = ATM(SDK()) atm.bills_count = bills_count_const amount = 1000 res = atm.withdraw(amount) assert res == expected return
Что произойдёт, если одновременно придут два запроса на резервацию? Как обеспечить консистентность?
Как реализовать простой механизм блокировки (lock) в памяти для защиты от конкурентного доступа без использования внешних зависимостей?
Что если вы считаете что проект требует чистой архитектуры, но менеджер говорит доставлять быстро с грязной архитектурой?
Как локализовать проблему с тормозящей ручкой? Что делать с падающей внешней зависимостью?
Что такое Garbage Collector в Python и как он работает?
Как понять, что есть утечка памяти? Что делать, если PM говорит, что приложение тормозит?
Принимал ли ты участие в выборе микросервисной архитектуры? Почему именно микросервисы?