@proGO

Страница 1135 из 1674
Alexander
12.01.2018
07:26:46
да, только индустрией все равно управляют западные кодеры)))

всякие там best practice - шаблон мышления, не более

Michael
12.01.2018
07:27:31
что за предрассудки

Alexander
12.01.2018
07:28:26
это как в случае с graphql, нсли бы ее разработал дадя ваня а не facebook ей никто бы и не пользовался, так как распространение информации слишком мало...

Google
Alexander
12.01.2018
07:28:45
так и react)

но тут еще временной фактор играет роль

Michael
12.01.2018
07:29:19
ну так Ваня из лицокниги молодец

там такие же человеки работают, разница в отношениии к человекам

и хз как это привязано к чату о гоу

Alexander
12.01.2018
07:30:11
не совсем да я и не про это

best practice идет от популярный пакетов и команд соответсвенно

Michael
12.01.2018
07:31:48
бест практисы микрософта))))

ой вей

Alexander
12.01.2018
07:31:57
)))

Michael
12.01.2018
07:35:14
пока одминство спит нашёлся стандарт С11 там есть такое: Type-generic expressions using the _Generic keyword. может кто-то это использовал и имеет смысл фитч реквест запилить?

Никита
12.01.2018
08:01:13
так и react)
В рамках оффтопа хочется упомянуть vuejs, который изначально был написан дядей Ваней Китай эдишн

Александр
12.01.2018
08:01:17
спать охото, сцук

Google
Alexander
12.01.2018
08:20:21
В рамках оффтопа хочется упомянуть vuejs, который изначально был написан дядей Ваней Китай эдишн
Из интервью: Хорошо, когда и как ты столкнулся с проблемой, которую попытался решить с помощью фреймворка Vue.js? Моя работа в Google была связана с активным созданием прототипов в браузере. У нас появлялась идея, и мы хотели как можно быстрее получить что-то ощутимое. В то время некоторые проекты использовали Angular. Мне Angular понравился наличием таких крутых вещей, как привязка данных и управление данных через DOM, поэтому вам не нужно работать напрямую с DOM. Это также привело к появлению всех этих дополнительных концепций, которые позволяли вам структурировать код так, как вам хотелось. Но это было слишком сложно для тех сценариев использования, с которыми я столкнулся в то время.

В рамках оффтопа хочется упомянуть vuejs, который изначально был написан дядей Ваней Китай эдишн
Работа в Google послужила рождению и развитию vuejs, а это уже не дядя Ваня)

))

Никита
12.01.2018
08:40:59
ну так или иначе инструменты рождаются не от нечего делать, а чтобы закрыть какую то потребность. да чувак из гугла это сделал, но как сайд-проект

Никита
12.01.2018
08:43:17
а спиннер это инструмент?

Nikolay
12.01.2018
08:43:51
Ну а почему нет

Никита
12.01.2018
08:43:54
ну типа да, можно придраться к словам, полно всякого барахла на гитхабе созданного именно от нечего делать

даже если представить спиннер как инструмент - не знаю, успокаивать обсессивно-компульсивное расстройство

мой посыл заключался в том что ок, опыт работы в гугле послужил причиной создания вуя. и это более чем закономерно, однако непосредственно гугл тут едва ли при делах

Alexander
12.01.2018
09:11:34
мой посыл заключался в том что ок, опыт работы в гугле послужил причиной создания вуя. и это более чем закономерно, однако непосредственно гугл тут едва ли при делах
google как ни крути анализировал vuejs, так как разработки даже бывших сотрудников проходят правовой анализ... разговоры в коллективе и тд в такой крупной компании уже могут пихнуть проект в массы с очень большой инерцией

?
12.01.2018
12:48:18
https://beta.golang.org/doc/go1.10

Alexander
12.01.2018
12:52:21
https://beta.golang.org/doc/go1.10
рано же еще...

?
12.01.2018
12:52:40
чего рано?

Александр
12.01.2018
13:02:02
вопрос по бестпрактик

представим что у нас функция скажем func new() (*Connect, Error) { bind, err := ... if err != nil { returm nil, err } err = anylib.func() if err != nil { if !ignoreError(err) { returm nil, err } } return connect, err }

мы используем один и тот-же err на несколько вызовов

+ игнорование ошибок в некоторых случаях

Google
Александр
12.01.2018
13:06:34
у меня забавно вышло, когда ошибка ушла в игнор и "проехав" несколько if ушла в main

Vany
12.01.2018
13:07:43
а как так получилось, ей же что то присваивалось?

Александр
12.01.2018
13:08:12
хз O_o

я удивлен что := не ругался

Vany
12.01.2018
13:08:38
или ей присваивалось в скупе, а проверялась снаружи старая?

:= проверяет только первую переменную,

nezorflame
12.01.2018
13:09:59
стоп

init в плане прямо инит?

в нем не должно быть аргументов и возвращаемых значений

by design

Александр
12.01.2018
13:10:35
нет ? я просто не удачно обозвал в примере

nezorflame
12.01.2018
13:10:43
а, ффух

Александр
12.01.2018
13:11:16
получается лучше на каждый блок свой err использовать

nezorflame
12.01.2018
13:13:45
необязательно

Александр
12.01.2018
13:13:58
на самом деле там либа кривая

возращает ошибку которую надо игнорировать

именно в err

что-то типо варнинга

nezorflame
12.01.2018
13:14:28
жесть

Александр
12.01.2018
13:14:35
из за этого пришлось вставить проверку в if err != nil

Google
Александр
12.01.2018
13:14:52
из за этого "пробило" прямо в main

Vany
12.01.2018
13:16:33
Чёт у меня не получилось

Александр
12.01.2018
13:16:48
что не получилось?

Vany
12.01.2018
13:16:48
var A=0 func cnt() (int, error) { A+=1 return A, errors.New(fmt.Sprintf("Error %d", A)) } func t4(){ _,err := cnt() if err != nil { if _,err := cnt(); err != nil { log.Println(err) } } log.Println(err) }

у вас там ещё где то проблема

Александр
12.01.2018
13:17:52
да нет проблемы, на самом деле там еще блок с if был

но я случайно сделал := внутри if

а там область видимости другая получилось

Admin
ERROR: S client not available

Vany
12.01.2018
13:18:18
то что обявляется в условии ифа принадлежит скупу ифа

Александр
12.01.2018
13:18:26
в резульате не юзабельное УГ просочилось вместе с валидным коннектом ?

(наверно плохо объяснил)

Vany
12.01.2018
13:18:45
:= всегда объявляет вторую переменную, если её нет в скупе

Александр
12.01.2018
13:19:34
func new() (*Connect, Error) { bind, err := ... if err != nil { returm nil, err } err = anylib.func() if err != nil { if !ignoreError(err) { returm nil, err } } if blabla { err := funcblabla() } return connect, err }

вот так случайно сделал

поскольку ignoreError отработал на отличненько, он подсунул err который не юзабельный

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

которую игнорровали

поэтому каскады на одном err зло ?

Alex
12.01.2018
13:22:00
поэтому каскады на одном err зло ?
https://medium.com/@matryer/line-of-sight-in-code-186dd7cdea88

Google
Vany
12.01.2018
13:22:12
=) Нет, если ignoreError правильный - в этом коде ничего не просачивается

Александр
12.01.2018
13:23:19
в каком смысле правильный?

=) Нет, если ignoreError правильный - в этом коде ничего не просачивается
он правильный, проверил что ошибка подлежит игнорированию и продолжил исполнение ?

конечно по хорошему "Зачистить" бы

что там дальше ошибка с областью видимости, такого не учитывается

Vany
12.01.2018
13:27:18
тоже нет, на сколько я понял у вас вот так: func t4(){ _,err := cnt() if err != nil { if _,err := cnt(); err != nil { log.Println(err) } } log.Println(err) i,err := strconv.Atoi("25") log.Println(i, err) } в моём случае atoi не возвращает ошибки ... и всё ок

Александр
12.01.2018
13:28:04
не ошибка в блоке прямо перед return

так вышло

тоесть последняя проверка писала в "свой" err

а вернуло то "глобальную" err с мусором на борту ?

nezorflame
12.01.2018
13:29:21
error shadowing произошел, в общем

Vany
12.01.2018
13:29:28
гист посмотреть можно?

Александр
12.01.2018
13:30:48
гист?

nezorflame
12.01.2018
13:30:53
сорцы

https://gist.github.com/

Александр
12.01.2018
13:31:39
ну во первых там много контекста, наверно я смогу пример сделать попроще

Vany
12.01.2018
13:32:45
ТОлько проверь, что он делает именно это

а вообще швыряй как есть, гист всё стерпит

Александр
12.01.2018
13:35:23
но в принципе я и так уже объяснил

что нельзя полагатся на "затирание" err

Страница 1135 из 1674