Comments 4
Лучше вычитывайте за нейросетью
Я реально полчаса искал, почему не работает s == nil
Эту ошибку отловит КОМПИЛЯТОР. Вы не будет "искать почему не работает", потому что этот код не запустится.
в некоторых случаях permissions приходили None
Эту ошибку отловит тайпчекер в mypy. Вы из тех "сеньоров" у которых питонкод без тайпхинтинга и без mypy?
Есть такая тема defensive programming, проверять все на свете. Но с другой стороны надо понимать, что это не бесплатно. Производительность это та валюта, которой придётся платить за безопасность. Возможно в enterprise проектах можно себе такое позволить. Будет медленно, можно закидать железом. А в системах реального времени, тех же играх, уже возникают вопросы. В идеале все должно работать как швейцарские часы, не должно быть такого, что куда-то там прилетел null, где с ним делать нечего. Надо в принципе не допускать такого вызова изначально. Если на каждом шагу надо проверять не ушла ли земля из под ног, то это тоже странно.
В реальных проектах дела конечно обстоят плохо. Куча людей пилит разные части системы. Никогда не можешь быть уверен что твой код вызовут с правильными входными данными. А когда в программе просто что-то не работает это иногда лучше чем, когда она со свистом крашится. Хотя и тут есть философия fail fast, которая рекомендует крашиться чем раньше тем лучше.
Архитектура сомнений: почему программисты ошибаются даже в очевидном