abcd
Я на маке))
Igor
Я аргументировал вот это, мне самому приятен го)
не могу говорить, всё давай пока )))
🏁Александр
Igor
Я на маке))
сочувствую
Igor
попробуй поставить лиинукс
Yura
Я на маке))
в brew найди и поставь господе
🏁Александр
это и тай линукс почти 🙂
Olzhas
Один фиг когда пишешь большие приложения что на го, что на питоне, код старается превратится в помойку
Olzhas
То ли дело пхп
Alexander
жирно.
Olzhas
Скоро туда жит завезут, и жабу нагнем
Vadim
If err != nil
Скинь мне два кода, где эти err != nil в разы увеличивают код
Eugeny
Вот бы сейчас в го-канале троллировать пэхэпой
Andrei 🦉
Скинь мне два кода, где эти err != nil в разы увеличивают код
любая бизнес логика, 1 строка вызов функции, а потом еще 3 для проверки на ошибку, а на уровень выше тоже самое и еще на уровень и так по всему приложению
Andrei 🦉
а уже если функция возвращает 3 значения, либо специальные ошибки типа NotFound, тот тут вообще вешайся, замучаешься копипастить
abcd
Кто подскажет, какой проект сделать?
abcd
Не ультра сложный
abcd
Но и не простую дичь
abcd
Ненужную...
abcd
Вооот
V
вон, рисовлку графиков выше хотели
Andrei 🦉
Не ультра сложный
nosql in memmory database с master - master репликацией и шардированием из коробки
Andrei 🦉
вон, рисовлку графиков выше хотели
на го такое писать - боль
abcd
Кстати, а какой-нибудь простенько й онлайн архиватор
abcd
?
abcd
Получиться написать?
V
все получится, если сильно захотеть
abcd
Согласен
Igor
Получиться написать?
да конечно. но это из разряда простой и ненужной дичи
abcd
Почему? Человек едет в метро и ему надо файл отправить большого размера, а он с телефона Заходит на сайт, он архивируют и по почте отправляет
Igor
ага, закачивает файл, скачивает архив.. чем просто локально зипнуть
Igor
реально дичь.
Igor
лол, и сколько часов будет файл на сайт загружаться из метро?
да тут лол в том что кинул файл в телегу или дропбокс и всё
Igor
если это видео то жаться не будет а если текст то он не будет 1 гиг весить
Алексей
а в питоне ошибки не надо проверять?
не надо руками вверх по стеку пробрасывать
Alexander
вы про исключения?
Andrei 🦉
а в питоне ошибки не надо проверять?
в питоне все это делается намного проще
Andrei 🦉
вы про исключения?
можно исключениями, можно написать обертки и избежать бесконечного дублирования кода
Anonymous
от эксепшенов го бы не стал хуже, конечно
Алексей
от эксепшенов го бы не стал хуже, конечно
Вообще panic/recover и есть исключения на самом деле.
Alexander
ну такое, в десятки раз это код не увеличивает
Andrei 🦉
от эксепшенов го бы не стал хуже, конечно
есть паника, и до версии 1.5 json парсер в стандартной либе был реализован через panic driven development
Anonymous
увеличивает в три раза
Alexander
если у вас все исключения обрабатываются на самом верхнем уровне - у вас для них должен быть очень серьезный обработчик
Anonymous
лан че спорить всеравно ничего не изменится. для нормальных людей на го пока нельзя писать
Andrei 🦉
увеличивает в три раза
в 3 раза только в одном месте, а если у тебя вложенные вызовы? и на каждом уровне ты прибавляешь еще по 3 строчки
Anonymous
в 3 раза только в одном месте, а если у тебя вложенные вызовы? и на каждом уровне ты прибавляешь еще по 3 строчки
да кстати думал про это тоже сказать но полетели бы камни. т.е. минимум в три раза
Алексей
если у вас все исключения обрабатываются на самом верхнем уровне - у вас для них должен быть очень серьезный обработчик
На самом верхнем уровне обычно либо логгер, либо ничего (тупо падение). Только между самым верхнем уровнем и самым нижнем (место возникновения ошибки) ещё куча промежуточных уровней, которые и могут корректно обработать ошибку.
Alexander
тогда надо писать обработчики на промежуточных уровнях, а это тоже код, получается
Andrei 🦉
тогда надо писать обработчики на промежуточных уровнях, а это тоже код, получается
только тебе при этом не нужно копипастить одни и теже 3 строчки кода на каждый чих
Алексей
тогда надо писать обработчики на промежуточных уровнях, а это тоже код, получается
Да, приходится. Да, код. Вот только он осмысленный и выполняет что-то полезное и как правило нетривиальное, в отличии от if err != nil { return nil, err }
Anonymous
ну в динамике вроде питона просто можно забить на ошибку совсем, и прикол что мы просто получаем маловероятные ошибки иногда, но сохраняем основной код чистеньким. а игнорировать err в го мы не можем
Anonymous
если реально придумать линтер для питона и костылить все возможные nil то получается примерно как в гошечке, кек. но в этом случае помог бы растовый monadic errors т.е. Result
Алексей
Хотя тут аккуратнее это обсуждать надо, а то я уже read only получал за мои возмущения по поводу ручного проброса ошибок
Andrey
лан че спорить всеравно ничего не изменится. для нормальных людей на го пока нельзя писать
я заметил, что я на питоне сейчас тупо пытаюсь обрабатывать ошибки на месте их возникновения. То есть пишу в стиле го. Не напрягает и кажется естественным. Читается код тоже более менее, хоть и простыня получается
Andrei 🦉
ну в динамике вроде питона просто можно забить на ошибку совсем, и прикол что мы просто получаем маловероятные ошибки иногда, но сохраняем основной код чистеньким. а игнорировать err в го мы не можем
ну какой-нибудь простенький синтаксический сахар, который бы позволял пробрасывать ошибки наверх без тупого копипаста очень помог бы
Andrei 🦉
я уже молчу про патерн матчинг и прочие прелести нормальных языков
Anonymous
в бизнес коде питона это нормально запросить базу и обработать случай если значения нет, всякие валидации. тупо получается лапша из условий да, но это бизнес условия, тут нет чернухи на каждый чих если например конекшен оборвался
Anonymous
хотя да, можно выбирать между эксепшенами и нил
Алексей
я вот не уверен, что это правильно с архитектурной точки зрения
Просто очень часто так бывает, что более низкоуровневый код не обладает достаточной информацией о корректной обработке ошибок. Из-за этого собственно и придумали исключения.
Anonymous
вобщем СЛОЖНО
Andrey
мне больше всего conditions&restarts нравится из систем обработки ошибок
Andrey
но я не настоящий сварщик
Алексей
Просто очень часто так бывает, что более низкоуровневый код не обладает достаточной информацией о корректной обработке ошибок. Из-за этого собственно и придумали исключения.
То есть к примеру функция открытия файла тупо не может знать что вообще надо делать при возникновении ошибки. Может быть ничего, просто игнор, может быть надо вообще падать, потому что файл очень важен, может быть просто отвечать 404 ошибкой.
Andrey
функция открытия файла и не обрабатывает ошибки никогда
Andrey
это для любого языка так
Алексей
да, она их возвращает
Алексей
Вот только код, вызывающий её, тоже не всегда знает что делать с ошибкой.