Информация об изменениях

Сообщение Re[15]: Почему в расте отсутствует выброс исключений? от 06.12.2022 16:30

Изменено 06.12.2022 16:34 vsb

Re[15]: Почему в расте отсутствует выброс исключений?
Здравствуйте, DarkEld3r, Вы писали:

DE>Но да, проще писать код не задумываясь над ошибками вообще. А уже по результатам тестирования подпирать костылями try/catch.


Дык про что я и толкую. А код надо писать так, как проще. А не так, как сложней. Платят не за обработку ошибок, а за функционал. Мало кто будет платить за сервис, который хорошо показывает ошибки, но у которого не хватает нужного функционала.

И я прекрасно понимаю, что это не универсальное правило. Если я пишу консольный клиент для git-а, конечно он должен выдавать хорошие ошибки. Если я пишу компилятор, он должен выдавать просто превосходные ошибки. Это важно. А если я пишу опердень, то этот опердень должен рассчитаться. А всё, что нужно от обработки ошибок — не испортить базу и адекватно вывалить эту ошибку, чтобы я лично с ней разобрался и исправил баг или входные данные или ещё там что-то. Время, потраченное на перфекционирование с ошибками, это скорей всего время, которое могло бы быть потрачено более полезным образом. А код, который потрачен на это перфекционирование с ошибками это код, который нужно будет сопровождать всю оставшуюся жизнь данной софтины.

А ещё могу добавить, что код, который обрабатывает теоретические ошибки, никто никогда не тестирует. Со всеми вытекающими. Вот когда у тебя код изначально максимально простой, потом тебе прилетела проблема, ты эту проблему в юнит-тесте смоделирован и точечно поставил в нужном месте try-catch, вот это идеально.
Re[15]: Почему в расте отсутствует выброс исключений?
Здравствуйте, DarkEld3r, Вы писали:

DE>Но да, проще писать код не задумываясь над ошибками вообще. А уже по результатам тестирования подпирать костылями try/catch.


Дык про что я и толкую. А код надо писать так, как проще. А не так, как сложней. Платят не за обработку ошибок, а за функционал. Мало кто будет платить за сервис, который хорошо показывает ошибки, но у которого не хватает нужного функционала.

И я прекрасно понимаю, что это не универсальное правило. Если я пишу консольный клиент для git-а, конечно он должен выдавать хорошие ошибки. Если я пишу компилятор, он должен выдавать просто превосходные ошибки. Это важно. А если я пишу опердень, то этот опердень должен рассчитаться. А всё, что нужно от обработки ошибок — не испортить базу и адекватно вывалить эту ошибку, чтобы я лично с ней разобрался и исправил баг или входные данные или ещё там что-то. Время, потраченное на перфекционирование с ошибками, это скорей всего время, которое могло бы быть потрачено более полезным образом. А код, который потрачен на это перфекционирование с ошибками это код, который нужно будет сопровождать всю оставшуюся жизнь данной софтины.

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