
09.07.2021, 23:49
|
Новичок на форуме
|
|
Регистрация: 09.07.2021
Сообщений: 5
|
|
Разве try catch в dev библиотеках не затрудняет разработку?
Не могу не написать. Интересует ваше мнение.
Очень часто в dev версиях библиотек все обернуто в try catch, которое перехватывает ошибку и рисует ее в красивой красной рамочке с уточнением, что именно наша отважная библиотека перехватила ошибку в вашем коде секунду назад. Круто.
Но гараздо удобнее видеть ошибку в том месте где она произошла, с текущим стеком и всеми аргументами, непосредственно в момент выполнения упавшего кода. Это упрощает понимание происходящего.
Сегодня для эксперимента удалил try catch в react.dev.js и ошибки в render функциях стало очень удобно анализировать и исправлять.
Почему авторы библиотек не понимают что нужно для удобной разработки, а что для прода?
Если я не прав - прошу вразумить. Спасибо.
|
|

10.07.2021, 09:38
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,251
|
|
Megabyte, знаешь почему булочки продают по 3шт, а сосиски по 5шт?
|
|

10.07.2021, 21:46
|
Новичок на форуме
|
|
Регистрация: 09.07.2021
Сообщений: 5
|
|
Это первая мудрость пуленепробиваемого монаха. Но в моем вопросе это как поможет? : )
|
|

11.07.2021, 10:56
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,251
|
|
Сообщение от Megabyte
|
Но в моем вопросе это как поможет?
|
Это собственно и есть ответ на твой вопрос. 
|
|

11.07.2021, 13:07
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,591
|
|
Ответ: потому что жизнь - боль.
Я хз почему отладка реакта превращается в пляски с бубном. Мне постоянно не покидает чувство, что наверное я просто что-то не понимаю и делаю не так. Но нагуглить как делать "так" - тоже не получается...
__________________
29375, 35
|
|

11.07.2021, 20:32
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,251
|
|
Сообщение от Aetae
|
Я хз почему отладка реакта превращается в пляски с бубном.
|
Я для себя сделал такое "наблюдение"... Нужно просто привыкнуть к сообщениям об ошибках на каком-либо языке (пришлось сменять несколько раз). Когда привыкаешь - становится понятно и разницы уже нет никакой.
Оно конечно, сложность программ у всех разная... Но я довольно быстро "разруливаю" проблемы в Реакте, с которыми обращаются мои сотрудники.
Как правило это они и являются источниками проблем. 
Если все "разложить" на простые элементы/функции - все становится понятно.
|
|

11.07.2021, 20:34
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,251
|
|
Сообщение от Aetae
|
Но нагуглить как делать "так" - тоже не получается...
|
Я сначала читаю книги по ЯП/библиотеки. Там более академично рассказывают принципы того или иного ЯП/библиотеки...
Если их придерживаться - проблем почти не возникает.
|
|

11.07.2021, 21:32
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,591
|
|
ksa, вот например ошибки вида
Цитата:
|
Objects are not valid as a React child (found: object with keys {hasError, filesIds}). If you meant to render a collection of children, use an array instead.
|
пиздец неинформативные. Я понимаю что где-то прилетел объект вместо ReactNode. Но и только.
В стеке только куча внутреннего реакт мусора и примерное(очень, сука, примерное) имя компонента. Кодовая база - легаси, написанный криворучками на чистом js.
И вот как это диагностировать не тратя кучу времени на ручной перебор? Куда оно конкретно прилетело и откуда? Хз.
Простите за экспрессию.)
__________________
29375, 35
|
|

11.07.2021, 22:54
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,251
|
|
Сообщение от Aetae
|
пиздец неинформативные
|
В одной книжке прочитал, что сообщения об ошибках в JS, помогают как стакан холодной воды в жаркий день для утопающего.
Так вот я с этим согласен.
Просто собираю свою "коллекцию" сообщений и "ситуаций". Это потом позволяет в диагностике "типичных" ситуаций.
Сообщение от Aetae
|
Простите за экспрессию.)
|
Всяко бывает в нашей практике... 
Но, думаю, ты найдешь охайничков. 
|
|

12.07.2021, 00:16
|
Новичок на форуме
|
|
Регистрация: 09.07.2021
Сообщений: 5
|
|
Сообщение от Aetae
|
ksa, вот например ошибки вида пиздец неинформативные. Я понимаю что где-то прилетел объект вместо ReactNode. Но и только.
В стеке только куча внутреннего реакт мусора и примерное(очень, сука, примерное) имя компонента. Кодовая база - легаси, написанный криворучками на чистом js.
И вот как это диагностировать не тратя кучу времени на ручной перебор? Куда оно конкретно прилетело и откуда? Хз.
Простите за экспрессию.)
|
Эта ошибка возникает в старом реакте без классов. Если компонентам проставить displayName, то сообщения об ошибках станут информативнее.
Как раз эту ошибку сложно отловить в месте возникновения, так как валидация происходит после выхода из метода. Тут бы пригодился механизм получения имени файла и строки в исходнике для произвольного метода. Например, вызвать метод с пустым this от чего он упадет, перехватить эту ошибку через try catch и из стека узнать местонахождение метода в коде.
Последний раз редактировалось Megabyte, 12.07.2021 в 00:18.
|
|
|
|