170 похожих чатов

Привет всем, сложно ли вам было перейти на го? меня в

нем напрягает полное отсутствие ооп
или это приживется со временем?
и try catch нет
а на нем например в node js многое строится
по сути это как if else стало в нем для меня

34 ответов

36 просмотров

Switch- case)

Вы неправильно ООП понимаете, раз думаете, что в go его нет

Если в js у вас код строится на исключениях, то это не очень хорошо

volo- Автор вопроса

например connection timeout отловить его это не ошибка кода это исключение которое будет, если сервер не ответил

volo
например connection timeout отловить его это не о...

Проблема возникает тогда, когда всю бл строят на исключениях. И почти любая ошибка становится исключением. Разобраться в этой лапше становится трудно Для того, чтобы лапша не слипалась, делают, например, either Подход го более многословен, но в итоге обычно в коде проще разобраться

Алексей Попов
Проблема возникает тогда, когда всю бл строят на и...

да нет никакой разницы исключения или ошибки. throw new ErrNotFound концептуально ничем не отличается от return ErrNotFound catch как и логирование на самом верху. надо обработать? пишешь try catch или if err != nil в чем разница? как уже заметили, стек вручную да, но я не вижу здесь достоинств ツ просто как факт.

к какой части именно фейспалм и почему?)

Artur Karapetov
да нет никакой разницы исключения или ошибки. th...

Catch на самом верху - один что ли? Тогда это очень плохо пахнет, и чаще всего бессмысленно, потому что нет возможности правильно обработать ошибку

Алексей Попов
Catch на самом верху - один что ли? Тогда это очен...

если нигде не надо доп обработки - да. если надо пиши везде где хочешь.

Никто не запрещает и goto использовать, так то. Попробуй, это практически так же удобно, как и throw для любой ошибки

А чем throw плохо-то?

Egor
А чем throw плохо-то?

Тот же throw exception вроде под капотом похож по смыслу на goto

Pavel
Тот же throw exception вроде под капотом похож по ...

Ну так-то на уровне ассемблера и обычный цикл - goto

Egor
А чем throw плохо-то?

Лапшой, в которую превращаются код тогда, когда вместо ошибок в нём исключения

Egor
Не вижу лапши в своём коде

Подожди полгода или год, ей надо остыть и слипнуться

Artur Karapetov
к какой части именно фейспалм и почему?)

К предположению, что единственный способ обрабатывать ошибки/исключения - это прокидывать до самого верха и там логировать

Алексей Попов
Подожди полгода или год, ей надо остыть и слипнуть...

Да и по нескольку лет проекты на питоне и яве поддерживал, чем в итоге ручное перекидывание err-ов лучше?

Алексей Попов
Подожди полгода или год, ей надо остыть и слипнуть...

В общем все аргументы в пользу разработчиков го, поленившихся сделать исключения, примерно такие, да

Daniel Podolsky
К предположению, что единственный способ обрабатыв...

не не. мисскоммуникейт. могу попробовать раскрыть мысль.

Daniel Podolsky
К предположению, что единственный способ обрабатыв...

в java везде троу нью. в го везед ретурн ерр это ничем не отличается. надо обработать ошибку? в джаве пишешь трай кетч в го пишешь иф ерр нет разница. в го все хорошо в этом плане.

Artur Karapetov
в java везде троу нью. в го везед ретурн ерр эт...

С тем отличием, что кода надо писать сильно больше и получаем спагетти из ерров

Egor
С тем отличием, что кода надо писать сильно больше...

у меня нет спагетти. а чтобы ее не было нужна нормальная архитектура.

Egor
Да и по нескольку лет проекты на питоне и яве подд...

Кетчи иногда забывают добавлять, и исключение летит куда-то туда, где с ним ничего не сделать Один кетч ловит сразу все ошибки (мы в контексте js), и надо ещё в нём разбираться, как именно и что сделать (или понять, что на этом уровне мы уже и не можем ничего сделать) Отработка ошибок не там, где они могут быть обработаны Вот это всё превращает код в макароны, которые приходится распутывать. Надо понять как работает код? Скачаешь от функции к функции, от файла к файлу, из слоя в слой Не всегда исключения - плохо. Но когда их начинают использовать для ошибок, чаще всего получатся не очень хорошо

Алексей Попов
Кетчи иногда забывают добавлять, и исключение лети...

Исключение, например, в запросе джанги, упрется в 500 на клиент Непроверенный err никуда не упрется, просто код будет работать некорректно, а с учетом, что для многих типов данных неинтциализированная переменная = пустое значение становится веселее func doSmth() (string, error) {} Забыл проверить ошибку? Получай пустую строку

Алексей Попов
Кетчи иногда забывают добавлять, и исключение лети...

В питоне и яве кетчи ловятся нормально Js да, очень плохо, тут согласег

Egor
Исключение, например, в запросе джанги, упрется в ...

Ну вот скажите мне, как такая проблема может возникнуть в питоне или яве?

Egor
Ну вот скажите мне, как такая проблема может возни...

Вот всем вопрос, пока никто не ответил

Egor
Исключение, например, в запросе джанги, упрется в ...

Тут ты прав. Но мы не забываем проверять ошибки

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта