@gogolang

Страница 688 из 1630
Andrew
05.12.2017
10:37:14
На Go надо кодить с чистой головой. А если уже успел покодить на других языках, то иногда хочется, чтобы у Go реализовывал побольше ништяков из других языков...

Анатолий
05.12.2017
10:45:24
Но вот отсутствие нормальных энамов я понять не могу.

Alexander
05.12.2017
10:49:19
и д***в!

Andrew
05.12.2017
10:52:18
и д***в!
А ну быстро удалил запрещённое слово (или закрыл звёздочками), а то человек-админ удалит тебя ?

Google
Alexander
05.12.2017
10:53:05
норм?)

Andrew
05.12.2017
10:53:18
??

Oleksandr
05.12.2017
10:53:20
д6ков

g5c

Анатолий
05.12.2017
10:54:16
Их нет

John
05.12.2017
10:55:11
ну... а чем iota не угодил ?)

не совсем, конечно enum. Но мимикрирует :)

Oleksandr
05.12.2017
10:55:38
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/ кидали уже?

Andrew
05.12.2017
10:58:47
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/ кидали уже?
Есть на русском? Посмотрел картинки - битая ОЗУ, какие-то картинки нагрева. Это чо, во всём Go виноват? ?

Oleksandr
05.12.2017
10:59:18
Есть на русском? Посмотрел картинки - битая ОЗУ, какие-то картинки нагрева. Это чо, во всём Go виноват? ?
so how was this breaking Go? Well, OR with 0 isn’t really a no-op. Since orq is not an atomic instruction, what really happens is the CPU reads the memory address and then writes it back. This creates a race condition. If other threads are running in parallel on other CPUs, orq might effectively wind up undoing a memory write that occurs simultaneously. Since the write was out of the stack bounds, it was likely intruding on other threads’ stacks or random data, and, when the stars line up, undoing a memory write. This is also why GOMAXPROCS=1 works around the issue, since that prevents two threads from effectively running Go code at the same time.

corpix
05.12.2017
11:19:27
Google
Александр
05.12.2017
11:37:20
https://www.youtube.com/watch?v=dqxqbvyOnMY&feature=youtu.be

занятия на выходые - переписать на гоу :)

Анатолий
05.12.2017
11:59:11
На пару выходных

Выходных жизней, ага. Заодно и phd можно получить)

Pawel
05.12.2017
12:29:07
Чего пример? Экстендед метода? Короч берешь чужую структуру и фигачишь к ней свой метод, так же как к своей. В C# я очень любил такие дела делать - удобно. Для чего? Что бы в функцию не передавать первым параметром ссылку на структуру.
для С# это прокатывает потому, это статическое расширение, а не монкипатчинг, и потому что в С# нет утиной типизации. Если такую фичу добавить в Го, то из-за утиной типизации Го станет таким же говном, как джаваскрипт

Pawel
05.12.2017
12:32:05
вот и разберись

Анатолий
05.12.2017
12:37:00
вот и разберись
Первая ссылка в гугле, дабы не переписывать все это еще раз: https://habrahabr.ru/post/148905/

Мерлин
05.12.2017
12:40:44
Анатолий
05.12.2017
12:41:51
Мне больше не enum не хватает, а variant (
Для интеграции с чем? COM вроде уже почти умер, а больше ничего в голову не идет.

Мерлин
05.12.2017
12:42:23
Анатолий
05.12.2017
12:43:01
Хз, я прост вариант встречал только в COM интерфейсах на венде.

Для чего он нужен?

Мерлин
05.12.2017
12:45:25
Для чего он нужен?
Это строго типизированный безопасный union Можно например по каналу передавать значения разных типов

Анатолий
05.12.2017
12:46:00
Разве это хорошо?

Мерлин
05.12.2017
12:47:07
Разве это хорошо?
Это очень хорошо

Анатолий
05.12.2017
12:48:02
Хорошо. Ты меня убедил.

Мерлин
05.12.2017
12:48:28
?

Pawel
05.12.2017
12:49:12
Первая ссылка в гугле, дабы не переписывать все это еще раз: https://habrahabr.ru/post/148905/
не, ну мальчики с хабра могут считать утиной типизацией всё что угодно, им не запретишь ведь. . В Го это по другому устроено - через интерфейсы, а не через дурацкие констрайнты (которые ни один нормальный человек не пишет сам, поскольку синтаксис уёбищный). Поэтому возвращая к твоему предложению, в Го оно означло бы монкипатчинг, что есть зло

Google
Анатолий
05.12.2017
12:49:54
А вот ты - нет.

Pawel
05.12.2017
13:02:55
это потому что ты не понял чем отличается костыльный ad hoc полиморфизм на ограничениях дженериков, о котором рассказали мальчичи из хабра, от утиной типизации в Го. Просто разберись

Анатолий
05.12.2017
13:21:26
это потому что ты не понял чем отличается костыльный ad hoc полиморфизм на ограничениях дженериков, о котором рассказали мальчичи из хабра, от утиной типизации в Го. Просто разберись
Приведи пример. Я не могу понять о чем ты. В шарпе я могу описать интерфейс, создать в рантайме любой объект этого интерфейса и положить его в экземпляр класса реализующего этот интерфейс. То, чем занимаются сотни DI-контейнеров. Что не так? Тебе не нравится явная реализация интерфейса классом?

Это если брать самый просто случай. Без линка.

Pawel
05.12.2017
13:27:13
не нравится конечно, иначе я писал бы на C#, а не на Го, в котором не надо явно перечислять интерфейсы, которые реализует тип - это жесть конечно. Но в данном случае речь не об этом. Ресь о том, что в C# методы расширения так или иначе не нарушают инвариант расширяемого класса, а в Го нарушили бы, поэтому их в Го не будет

Анатолий
05.12.2017
15:12:16
Faster golang builds #golang https://ttboj.wordpress.com/2017/02/26/faster-golang-builds/

Pawel
05.12.2017
15:14:16
Чтобы ты понел, нельзя на С# (а также VB и F#) написать функцию, которая принимает в качестве параметра любой объект, у которого есть не статический метод string Error() например, а на Го это задача для тех, кто только сегодня узнал про Го. Поэтому если предположить, что отцы основатели Го ебанулись и впендюрили в Го 2 методы расширения по образцу C#, то вызывающий код сможет полностью сломать все контракты вызываемого кода, как это сейчас в javascript-е

Алексей
05.12.2017
15:17:44
> отцы основатели Го ебанулись и впендюрили в Го 2 методы расширения по образцу C#, ???

Александр
05.12.2017
15:23:35
эту цитату вне контекста можно сразу в горячее кидать, тема будет бомбическая :)

призываю ализара, щаз на хабр тиснем "аналитическую" статью

Aliaksandr
05.12.2017
15:27:47
Faster golang builds #golang https://ttboj.wordpress.com/2017/02/26/faster-golang-builds/
в go 1.10 не нужно будет делать go build -i - https://groups.google.com/d/msg/golang-dev/EZtZsJG35ZM/2xMhVLu9BQAJ

Alexander
05.12.2017
15:28:36
Кто использует монго драйвер? Посоветуйте "живую" библиотеку пожалуйста.

Alexander
05.12.2017
15:29:04
3.6 не поддерживает

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

Nikita
05.12.2017
15:29:38
c 3.4 точно работает

Alexander
05.12.2017
15:29:44
может есть опыт юза с++ либы?

3.6 нид

Nikita
05.12.2017
15:29:56
а изменения файлов были давно, поэтому делаю вывод, что она не слишком живая
увы, но она единственное, что адекватно работает с монгой

Google
Nikita
05.12.2017
15:30:14
может есть опыт юза с++ либы?
тернистый слишком путь)

Alexander
05.12.2017
15:30:27
cgo + adapter?)

зашквар?)

Nikita
05.12.2017
15:31:01
зашквар?)
думаю да) а что именно не работает?

с 3.6

Alexander
05.12.2017
15:31:09
changestream

Nikita
05.12.2017
15:32:12
а через dbRun нет вариантов? я не знаком еще с changestream

Александр
05.12.2017
15:32:29
народ, кто сталкивался

Admin
ERROR: S client not available

Александр
05.12.2017
15:32:41
json: cannot unmarshal float64 into Go value of type String

внимание вопрос: как это корректно обойти?

по хорошему это ошибка валидации

Nikita
05.12.2017
15:33:19
типы не соответствуют

Александр
05.12.2017
15:33:24
но до валидатора еще даже не дошло

Nikita
05.12.2017
15:33:36
капитан
Он самый)

Alexander
05.12.2017
15:33:40
а через dbRun нет вариантов? я не знаком еще с changestream
changestream возвращает изменения в коллекции

Александр
05.12.2017
15:33:59
вопрос блин не в "что это за ошибка помогите", а как кашерно все развернуть :)

Alexander
05.12.2017
15:34:11
сопоставить типы

Nikita
05.12.2017
15:34:20
changestream возвращает изменения в коллекции
в курсе, но не юзал еще, посмотри через run

Google
Alexander
05.12.2017
15:34:31
спасибо, Никита

Александр
05.12.2017
15:34:46
что значит "сопоставить типы"? :)

Nikita
05.12.2017
15:35:28
вопрос блин не в "что это за ошибка помогите", а как кашерно все развернуть :)
передавать номральные типы, ну или interface (но второй вариант хреновый, если ты проектируешь апи например)

Alexander
05.12.2017
15:36:03
{"float":1234} {"string":"1234"} - good {"float":"1234"} {"string":1} - bad

Александр
05.12.2017
15:36:22
Александр
05.12.2017
15:36:33
их надо корректно послать

с тычком в нос, в каком поле облажались

Nikita
05.12.2017
15:36:54
а у меня http api, "плохие клиенты" могут что угодно передавать
что угодно - это проблема плохих клиентов, делай хорошее апи

ну или принимай через интерфейс и приводи к нужному типу уже сам

Alexander
05.12.2017
15:37:27
400 bad request )

Nikita
05.12.2017
15:37:40
Александр
05.12.2017
15:37:49
в пыхе например при таком, оно скажет что "вася ты мудак, прислал нам fileld типа такого то, а мы ждали такой то" :)

а тут просто получается "вася ты мудак, точка"

Alexander
05.12.2017
15:38:18
&

?

Александр
05.12.2017
15:38:23
400 bad request )
ты не поверишь, оно откидывает 400

Slach
05.12.2017
15:38:35
Александр
05.12.2017
15:38:55
это где оно такое расскажет?? ;) вы простите в stdout делаете display_errors on ???
c дубу рухнули? кастомный класс валидации конечно, который вручную проверяет типы

и корректно формирует json ответ с посылом

Slach
05.12.2017
15:39:19
ну и? что мешает поискать пакеты валидации и посмотреть куда они логирование делают ?

Страница 688 из 1630