Рассматриваешь ли оформление по трудовому договору

Ответ

Ответ не найден

Ответ 18+ 🔞

А, вот ты где, дружище! Слушай, сейчас расскажу тебе про одну дичь, которая в программировании случается чаще, чем хотелось бы. Сидишь ты такой, пишешь код, всё вроде работает, а потом — бац! — и всё накрывается медным тазом. И начинаешь думать: «Какого хуя? Я же всё проверил!».

Вот представь: у тебя есть функция, которая должна считать сумму. Проще некуда, да? Берёт два числа, складывает, возвращает результат. Ебушки-воробушки, что может пойти не так?

def сложить(a, b):
    return a + b

print(сложить(2, 2))  # Выведет 4. Всё гуд.

Но потом приходит какой-то хитрожопый пользователь и передаёт не числа, а строки. И тут начинается ёперный театр.

print(сложить("2", "2"))  # Выведет "22". Вот тебе и вся арифметика.

Сам от себя охуеваешь. Ты же ожидал 4, а получаешь «22». И ладно бы это, но дальше — больше. Прилетает None, или вообще какой-нибудь объект, который складывать нельзя. И твоя красивая функция, которая вчера работала, сегодня выдаёт ошибку, от которой волосы дыбом встают.

print(сложить(2, None))  # TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

Вот тут-то и понимаешь, что доверия к входящим данным — ноль ебать. Надо всё проверять, как параноик. Подозрение ебать чувствую ко всему, что приходит извне.

def сложить_без_сюрпризов(a, b):
    # Э, бошка, думай! Проверяем, что нам подсунули.
    if not isinstance(a, (int, float)) or not isinstance(b, (int, float)):
        raise ValueError("Чувак, мне нужны числа, а не какая-то хуйня!")
    return a + b

# Теперь попробуй сломать
try:
    print(сложить_без_сюрпризов(2, "2"))
except ValueError as e:
    print(f"Поймал нахулигана: {e}")

Вот это уже другое дело. Функция теперь не молча делает ерунду, а сразу орёт, если что не так. Это называется «защитное программирование». Суть в том, чтобы ошибки обнаруживались как можно раньше, желательно сразу в том месте, где в программу залетает какая-то манда с ушами.

А бывает обратная ситуация: ты слишком умный, начал делать проверки на всё подряд, код раздулся в три раза, а отлавливаешь ошибки, которые случаются раз в пятилетку. Тут главное — баланс. Не превращай каждую функцию в крепость, которую штурмовать полгода надо. Но и не будь распиздяем, который слепо верит всему, что прилетает.

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