
Stepan
22.08.2017
10:24:22

Dmitry
22.08.2017
10:25:04


Ilia
22.08.2017
10:25:14
в реальном коде, за гранью туторов, я сспециально у себя смотрел, вот именно так в одном или двух местах было. во всех остальных ошибки возврата хэндлятся мозгами и всегда там есть какая-то логика, ну или просто идет вызов прямо внутри if, типа
if err := doSomth; err != nil {
handle error case, log it, construct new error message, return it
}
и очень часто еще на тип ошибки проверяется и тогда разные кейсы отрабатываются.
т.е. эта конструкция реально нужная и ни фига не повторяющаяся в человеческом коде
Ну тут вариантов несколько: 1. Обработать на месте - хорошо если хватает контекста, но это обычно не так; 2. Обернуть в другую ошибку с подробностями получения и передать наверх - самый годный вариант в плане дизайна, но не скрывается ли тут потенциальный оверхед от выделения дополнительной памяти? 3. Просто передавать наверх до появления осмысленного контекста - собсна и есть вариант с кнопкой, дёшево и сердито. Обработка типа if err := doSomth; err != nil просится в сниппет, тут согласен


Sergey
22.08.2017
10:25:36
https://twitter.com/NateTheFinch/status/899730215957561344

Google

Aleksandr
22.08.2017
10:25:52
большие файлы режутся на маленькие и хранятся на разных пирах, а их хеши собираются в merkle dag

Stepan
22.08.2017
10:26:02

Aleksandr
22.08.2017
10:26:12
я так понял что изначально они это пилили как стор для больших датасетов

Stepan
22.08.2017
10:26:53
у них там еще не плохая идея с filecoin, всяко лучше чем большинство остальных ICO

Dmitry
22.08.2017
10:27:05
и чё будет когда ты поднимаешь свою ноду - к тебе всё синкается?

Aleksandr
22.08.2017
10:27:22
нет
только то что ты запрашиваешь
но синкается типа перманентно и ты сразу начинаешь раздавать этот кусочек
ну GC понятно там есть
так же есть такая штука как filecoin
криптовалюта где тебя платят за то, чтоб ты хранил обжекты для кого то
но майнить рано, они не запустились пока

Google

Aleksandr
22.08.2017
10:30:21
го за винчестерами

Egor
22.08.2017
10:31:11
Го

Stepan
22.08.2017
10:31:17
Го

Dmitry
22.08.2017
10:31:32
сегодня прям день Го)

Egor
22.08.2017
10:31:36
А есть обзоры на русском?

Aleksandr
22.08.2017
10:31:52
обзоры ipfs?

Egor
22.08.2017
10:32:01
Да

Aleksandr
22.08.2017
10:32:02
вроде нет
оно пока сырое

Egor
22.08.2017
10:33:15
Сколько винчестеров нужно?

Aleksandr
22.08.2017
10:34:02
читай@разбирайся

Egor
22.08.2017
10:34:53
С английским не так хорошо :(

Dmitry
22.08.2017
10:35:11
удобный случай, чтобы стало хорошо!

Ilia
22.08.2017
10:40:56

Aleksandr
22.08.2017
10:41:25
ага, тоже плакал на этом моменте

Denis
22.08.2017
11:41:52


Serge
22.08.2017
11:45:20
Скорее именно if err != nil, но не if err := doSmth(); err != nil, так как обычно doSmth будет что-то возвращать, что нужно будет в случае отсутствия ошибки, но в таком случае оно будет видно только в скоупе кода исполнения условия или else. Но сниппет if err != nil действительно имеет место быть. //Сорри за грызунов в этом канале ._.
с тем, что есть if err != nil, я согласен, а вот что там всегда, как на картинке, return nil, err - нет


Denis
22.08.2017
11:47:02
Да, но чаще встречается что-то с результатом. В отличии от С, на гошке коммьюнити, судя по библиотекам, предпочитает возврат значений через return, а не через указатель на структуру )

Serge
22.08.2017
11:47:02
и в таком случае, я не понимаю чем это хуже try..except или, например, питоновоской декларации __init__ с потрохами в классе.

Google

Serge
22.08.2017
11:47:33

Denis
22.08.2017
11:48:05
В идеале бы иметь какой-то оператор вроде check err. Например func A() *B, *C, error { ... if err !=nil { check nil, nil, err } }, но это опять же лишняя семантика и нагрузка языка, а смысл не такой уж большой

Andrey
22.08.2017
11:54:09
в расте вот норм сделали

Denis
22.08.2017
11:54:26
В расте красиво сделали, соглашусь

Andrey
22.08.2017
11:54:50
#[must_use]
enum Result<T, E> {
Ok(T),
Err(E),
}

Denis
22.08.2017
11:54:57
Но это enchancement, новая штука, которая по сути то же самое, но заставляет изучать новую конструкцию

Andrey
22.08.2017
11:55:18
но хрен ты ее пропустишь

Denis
22.08.2017
11:55:41
Хороший пойнт

Serge
22.08.2017
11:55:59

Denis
22.08.2017
11:56:15
Но вообще нет совести у того гошника, который пишет result, _ := transaction.Perform() ?

Denis
22.08.2017
11:58:16
Но есть один кейс, где иначе никак
Когда ты результат хочешь записать сразу в поле структуры, a.FieldB, err := doSmth() - ошибка, так как FieldB объявлен. Если просто "=", то тоже ошибка, так как err не объявлен. Так вот и приходится делать либо var err error, либо объявлять имя для возвращаемой переменнной: func A() (err error)

Александр
22.08.2017
12:35:55
А кстати, какой язык бы вы посоветовали сегодня изучать в первую очередь, кроме python?

Jonh
22.08.2017
12:37:39

Егор
22.08.2017
12:38:15
Python 2, если знаешь Python 3.
Python 3, если знаешь Python 2.

Александр
22.08.2017
12:38:39

Google

Александр
22.08.2017
12:40:03

Dmitry
22.08.2017
12:40:26
зачем python-2-то о_0

Jonh
22.08.2017
12:40:28

Dmitry
22.08.2017
12:40:49

Александр
22.08.2017
12:41:16
спасибо

Roman
22.08.2017
12:42:11
ну и гошечка, да

Admin
ERROR: S client not available

Jonh
22.08.2017
12:42:44
Но это такое себе, главное не языки, а идеи, которые в них реализованы

Sergey
22.08.2017
12:43:26

Michael
22.08.2017
12:43:40

Ruslan
22.08.2017
12:44:27
ну java же, алло

Michael
22.08.2017
12:45:22

Ruslan
22.08.2017
12:46:08

Александр
22.08.2017
12:46:47
https://insights.stackoverflow.com/trends?tags=scala%2Chaskell%2Cgo%2Cjava%2Cpython-3.x%2Cerlang%2Cjavascript

Andrey
22.08.2017
12:47:03
rust еще добавь
и что это должно показывать?

Jonh
22.08.2017
12:48:33

Александр
22.08.2017
12:48:45
да, просто интересно стало.

Andrey
22.08.2017
12:48:51
понятно что индусов на джаве больше всех, и они даже ее не знают и спрашивают

Google

Andrey
22.08.2017
12:50:58

Aleksandr
22.08.2017
12:53:55
А кстати, какой язык бы вы посоветовали сегодня изучать в первую очередь, кроме python?
К словам парней добавлю ещё хаскелл. Причем не учить, а хорошо ознакомиться, мозг прочищает весьма неиллюзорно - все устроено совсем не так как ты привык и работает (почти работает, ладно. Хорошо, не работает нихрена, но поинт не в этом). Еще для ознакомления могу посоветовать julia - там интересные идеи с мультидиспатчем и такой штукой как promotion.
Джаву так и не осилил, кстати. Не лезет она в глазки мне ну вот никак.

Alexey
22.08.2017
13:00:37

Michael
22.08.2017
13:00:50
Java.
http://durgasoft.com/

Jonh
22.08.2017
13:00:58

Aleksandr
22.08.2017
13:01:46
мне показалось что окасаки уже не ознакомление
тут бы просто посмотреть что такое io в чистом языке, как можно вообще получить профит от чистоко языка, почему профитно иметь нестрогие вычисления и почему не выгодно

Alexey
22.08.2017
13:03:01

Jonh
22.08.2017
13:04:09

Aleksandr
22.08.2017
13:04:28
ещё, если ты совсем задрот и жизни нет и не планируется, то можно попробовать заимплементить какой нить язык, тогда срузу многие вопросы встают на место.

Sergey
22.08.2017
13:04:38

Aleksandr
22.08.2017
13:04:48
там мл да
смл вроде
он не ленивый, и афтар как раз сетует об этом

Jonh
22.08.2017
13:06:45

Stepan
22.08.2017
13:06:57

Aleksandr
22.08.2017
13:07:27
ну стековая машина это самый пресамый примитив