Size: a a a

2019 January 31

V

Vsevolod in Канада IT
Vasily Khoruzhick
ну таки "отработать правильно" и "проглотить ошибку и накосячить дальше" - это два разных случая
Так я и не говорил накосячить, я говорил что-то сделать или кинуть ошибку и её отработать.
источник

A

Art in Канада IT
Vsevolod
Для сервака лучше как раз не ложится от каждого чиха, а отработать и пойти дальше.
Не согласен. Например у меня проект, где неверно сформированный файл это в 1000 раз хуже, чем пользователь увидет, что что-то поламалось
источник

D

Denys in Канада IT
Vsevolod
Что в рантайме? Не понял мысль.
ошибка  вылазит во время выполнения программы, а не на этапе компиляции
источник

V

Vsevolod in Канада IT
Denys
ошибка  вылазит во время выполнения программы, а не на этапе компиляции
Да, ловится и отрабатывается выше по стеку.
источник

AA

A A in Канада IT
Vsevolod
Да, ловится и отрабатывается выше по стеку.
Но зачем, когда типы позволят отловить ошибки еще на этапе компиляции?
источник

A

Art in Канада IT
Denys
ну так вроде сервак просто наверху где-то ловит говноэкспешен и чего-то с ним делает (по уму - логирует), а не ложится наглухо.
Так сервак то весь понятно не ложится, но конкретный пользователь должен получить ошибку, не неверный результат
источник

V

Vsevolod in Канада IT
A A
Но зачем, когда типы позволят отловить ошибки еще на этапе компиляции?
Ну так их нет в языке.
источник

V

Vsevolod in Канада IT
Art
Не согласен. Например у меня проект, где неверно сформированный файл это в 1000 раз хуже, чем пользователь увидет, что что-то поламалось
Это другой вопрос, здесь я бы как-то дополнительно проверял.

Но с чего вы взяли что результат будет неверным?
источник

VK

Vasily Khoruzhick in Канада IT
A A
Но зачем, когда типы позволят отловить ошибки еще на этапе компиляции?
кмк, это холиварная тема
источник

V

Vsevolod in Канада IT
A A
Да и упасть можно, чего уж там, а дальше рестарт полиси сработает и опа, мы опять в строю.
Ко мне за рестарты в кубе прибегают.
источник

D

Denys in Канада IT
Vsevolod
Ко мне за рестарты в кубе прибегают.
правильно, значит там косяк который надо править, а не заметать под ковёр :)
источник

V

Vsevolod in Канада IT
Denys
ну так вроде сервак просто наверху где-то ловит говноэкспешен и чего-то с ним делает (по уму - логирует), а не ложится наглухо.
Ну так я об этом говорю. Вы передаете объект в функцию вычисления даты не тот, у него нет ожидаемого метода например. Летит эксепшн, выше перехватывается и логгируется как проблема работы с датой и делается что-то другое.
источник

A

Art in Канада IT
Denys
а когда он не хуже вообще?
Вообще бывают случаи, в основном на фронте, когда лучше чтобы работало хоть как-то, чем вообще лежало. Если у тебя не критичные даные, то иногда лучше неверный результат где-то, чем неработающий сайт
источник

AA

A A in Канада IT
Vasily Khoruzhick
кмк, это холиварная тема
И это удивительно, так как переложить работу с себя на комплуктер любому прогроммисту должно быть за благо.
источник

VK

Vasily Khoruzhick in Канада IT
A A
И это удивительно, так как переложить работу с себя на комплуктер любому прогроммисту должно быть за благо.
мне лениво расписывать аргументы обеих сторон, я слишком старый для таких холиваров :)
источник

D

Denys in Канада IT
Vsevolod
Ну так я об этом говорю. Вы передаете объект в функцию вычисления даты не тот, у него нет ожидаемого метода например. Летит эксепшн, выше перехватывается и логгируется как проблема работы с датой и делается что-то другое.
ну да, но это ж условно говоря последний рубеж уже. А в идеале - ловить сразу на этапе компиляции, чтобы настолько далеко не заходило.
Ну и тут в принципе вопрос подходов - я люблю ловить ошибки как можно раньше и минимизировать их возможность появления. Поэтому всегда включаю treat warnings as errors, что уменьшает возможности навгонячить
источник

V

Vsevolod in Канада IT
Denys
правильно, значит там косяк который надо править, а не заметать под ковёр :)
Вот здесь про EAFP написано, это прямо сок pythonic программирования https://stackoverflow.com/a/11360880
источник

A

Art in Канада IT
Из этих двух вариантов я бы LBYL выбрал
источник

A

Art in Канада IT
В питоне нет чего-то вроде tryGet для dictionary?
источник

V

Vsevolod in Канада IT
Art
В питоне нет чего-то вроде tryGet для dictionary?
Есть, зависит от ситуации
источник