Search
Write a publication
Pull to refresh

Comments 4

Лучше вычитывайте за нейросетью

Я реально полчаса искал, почему не работает s == nil

Эту ошибку отловит КОМПИЛЯТОР. Вы не будет "искать почему не работает", потому что этот код не запустится.

в некоторых случаях permissions приходили None

Эту ошибку отловит тайпчекер в mypy. Вы из тех "сеньоров" у которых питонкод без тайпхинтинга и без mypy?

И из тех, которые в упор не видят мутабельный объект в качестве значения по умолчанию. Какой-то "сеньор после 6-месячных курсов" получается.

Есть такая тема defensive programming, проверять все на свете. Но с другой стороны надо понимать, что это не бесплатно. Производительность это та валюта, которой придётся платить за безопасность. Возможно в enterprise проектах можно себе такое позволить. Будет медленно, можно закидать железом. А в системах реального времени, тех же играх, уже возникают вопросы. В идеале все должно работать как швейцарские часы, не должно быть такого, что куда-то там прилетел null, где с ним делать нечего. Надо в принципе не допускать такого вызова изначально. Если на каждом шагу надо проверять не ушла ли земля из под ног, то это тоже странно.

В реальных проектах дела конечно обстоят плохо. Куча людей пилит разные части системы. Никогда не можешь быть уверен что твой код вызовут с правильными входными данными. А когда в программе просто что-то не работает это иногда лучше чем, когда она со свистом крашится. Хотя и тут есть философия fail fast, которая рекомендует крашиться чем раньше тем лучше.

Null-safety давно есть во всех активно используемых языках, поэтому в нормальном случае у грамотного разработчика такой проблемы просто не возникнет - линтер и компилятор решают эту проблему в принципе

Sign up to leave a comment.

Articles