@gogolang

Страница 1310 из 1630
Olzhas
24.08.2018
13:26:11
Я видел какую-то библиотеку от гугла на пхп
Там эти поехавшие буквально все оьмазали геттерами и сеттерами

Dmitry
24.08.2018
13:28:04
Вообще никак не повлиют. Потому что дженерики не нужны и их никто использовать не будет.
вторая проблема это implitic boxing - в отличии от джавы где только примитивы таким страдают (Integer и int) в Go придется вообще все - потеря перфоманса. Плюс проблемы для escape analysis

Aleksandr
24.08.2018
13:28:22
Там эти поехавшие буквально все оьмазали геттерами и сеттерами
потому что они генерят либы на разных языках на базе схемы

по крайней мере так сдк у них сделано

Google
Dmitry
24.08.2018
13:28:53
Я спрашивал почему не выбрали путь D - там быстрые билды и мощная система шаблонов, но Фитзпатрик не знал про это. Говорит то, что дизайнов генериков было очень много - ни один из них не устроил тогда.

Dmitry
24.08.2018
13:30:30
Так и не нужно же
DI нормальный, сложный, не сделать иначе

Но это так...

Смотря на тот же Rust - я пытаюсь понять где лежит баланс между бедностью языка и потерей ясности для разработчика.

Алексей
24.08.2018
13:31:07
DI нормальный, сложный, не сделать иначе
DI тоже не нужен, это всё джавистская ересь, как и геттеры с сеттерами

Dmitry
24.08.2018
13:31:25
Дед Пегас
24.08.2018
13:31:35
Не, нафига дженерики и шаблоны? Оно ж только усложняет. Потом будут тексты ошыбок как в плюсах на пару километров.

Алексей
24.08.2018
13:31:43
да я же саркастично и утрированно отвечал

Google
Дед Пегас
24.08.2018
13:32:32
Никто не заставляет делать дженерики тьюринг полными
Совсем не обязательно. Но даже обычные навороты из 100500 уровней это кошмар.

Dmitry
24.08.2018
13:32:39
зачем это в реальном коде?
Это гипотетический пример когда обертка 1 является оберткой 2 для обертки 1

Mike
24.08.2018
13:35:37
Совсем не обязательно. Но даже обычные навороты из 100500 уровней это кошмар.
100500 уровней — это когда генерики объединяют с ООП

Dmitry
24.08.2018
13:35:57
перефразирую — нахрена?
Многоуровневые контейнеры? Ну иначе ту же map[string][]map[string]string сделать нельзя на основе именно типов

И вот такой код я уже в кешах встречал - когда уровни кешей инвалидируются

типы посложнее только были =)

Dmitry
24.08.2018
13:38:09
чё? https://play.golang.org/p/pUtswD6VD-v
Сейчас это работает так как slice и map это встроенные метатипы хех

Kirill
24.08.2018
13:38:17
ну

Dmitry
24.08.2018
13:38:32
ну вот на основе кодогенерации такое уже не сделать

через свои map и slice

Dmitry
24.08.2018
13:39:26
сделать
Ну вперед =)

Kirill
24.08.2018
13:39:31
в чём проблема-то?

Ну вперед =)
что вперёд? когда мне такое надо было сделать, я сделал

Dmitry
24.08.2018
13:40:06
Проблема в том, что если это делать на основе кодогенерации нужно либо цепочку пакетов генерировать - либо отменять правило о цикличных импортах

Google
Kirill
24.08.2018
13:40:20
wut?

Dmitry
24.08.2018
13:44:15
wut?
Говорю - попробуй =) Я уже много кодогенараторов так или иначе написал - я понимаю о чем идет речь.

Kirill
24.08.2018
13:45:22
Dmitry
24.08.2018
13:46:03
ну я думаю можно на этом обсуждение прекратить)

Daniel
24.08.2018
13:50:00
А вот это я могу ответить - в текущей модели Go нельзя сделать аналог Vector<List<Vector>>
насколько я понимаю, делать придется все же Vector<List<Vector<something>>> и почему этого нельзя сделать кодогенерацией - я не понимаю

Dmitry
24.08.2018
14:01:57
...ммм - есть два решения - через генерацию всей цепочки метатипов в одном пакете, либо генерацией для первого мета типа и третьего метатипа отдельных пакетов. Оба решения имеют свои минусы. Те нельзя в одном пакете сгенерить свою карту c ключом от типа другого пакета, который будет ссылаться на этот пакет. А вот это ведет уже к разрастанию кода - причем и для рантаима который не понимает что из этого можно безопастно удалить. Более того в компиляторах с более менее продвинутыми генериками испольузется мономорфизм - это когда map[string]int и map[string]int64 в итоге генерируют один код. Для интерфейсов это тоже работает. И это позволяет сократить размер итогового бинаря и размер работы для рантаима который по типам ходит при инициализации.

Второе кстати недавно было проблемой для кубиков - у них в 1.9 они лимитов по числу типов в рантаиме достигли. Как раз за счет генерации кода.

Altai
24.08.2018
15:45:03
https://gitlab.com/gitlab-org/gitlab-ce/issues/37832 https://gitlab.com/gitlab-org/gitlab-ce/issues/1337#note_36293613 Так до сих пор и нет какого-нибудь workaround, кроме имен пакетов с .git?

*Если не считать "не использовать подгруппы", конечно. :)

Artem
24.08.2018
15:59:50
Подскажите, пожалуйста как праивльнее в случае err выполнения запроса выполнить его еще 5 раз с интервалом в 30 сек? рекурсивный вызов выглядит как бесконечное выполнение func myRequest(method, url, param) { ...... res, err := http.DefaultClient.Do(req) if err != nil { for i:=0; i<5; i++ { time.Sleep(time.Second*30) myRequest(method, url, param) } return res.Body } ....... }

Artem
24.08.2018
16:03:25
Почему не просто http.DefaultClient.Do? Как у вас же выше.
он возвращает res, err и мне их надо как то передать выше

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

Aleksandr
24.08.2018
16:04:46
отдели выполнение задачи от непосредственно http-запроса

execute(method, url, param) request(method, url, param) в первом методе делай проверки и если надо выполняй новый запрос.

Fastumkruk ✅
24.08.2018
16:16:59
Не овсем по теме, извиняюсь, просто спор у меня тут. На пыхе команда get_content(URL) создает гет запрос?

Fastumkruk ✅
24.08.2018
16:19:03
Google
Aleksandr
24.08.2018
16:20:15
По умолчанию гет

Лемур
24.08.2018
16:20:18
да
По-умолчанию - да, GET. Но можно сделать и POST

Admin
ERROR: S client not available

Aleksandr
24.08.2018
16:20:21
Но можно передать контекст

Fastumkruk ✅
24.08.2018
16:20:30
Спасибо!

Aleksandr
24.08.2018
23:58:49
https://blog.golang.org/go1.11 https://golang.org/dl/

Kirill
25.08.2018
00:00:02
jaja

gramework supports this shit already

Adam
25.08.2018
00:24:19
Kirill
25.08.2018
00:27:27
go1.11 вышел, я посмеялся на тему того, что в чате новость эта прилетела уже после моего пуша с поддержкой 1.11 :D

Adam
25.08.2018
00:28:08
понятно)

Michael
25.08.2018
07:18:51
1.11 это хорошоу

Denys
25.08.2018
09:43:25
пишу консольное приложение, как удалить текст stdin после ввода пользвателем

чтобы он не видел свой набранный текст?

Wingman
25.08.2018
09:50:32
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html

ну или там, ввёл 10 символов - послать ему 10 бекспейсов (char 8 вроде)

Olzhas
25.08.2018
09:53:27
шо посоны, кто уже потыкал vgo?

огонь!

goland еще парсить его научился быстро

Sergey
25.08.2018
09:55:08
Как можно в makefile указать путь до GOROOT? Пробовал: GOBIN=${GOROOT}/bin/ GOCMD=$(GOBIN)go но при запуске в консоль пишет make: /bin/go: Команда не найдена

Google
Wingman
25.08.2018
10:01:45
кто-нибуть x/crypto/ssh юзает? есть какой-нибудь способ управлять его таймаутами?

А то совсем лажа. Задаётся единственный таймаут, вообще на всё соединение в целом. А я, допустим, хочу иметь долгое соединение, но иметь read/write deadlines

Sergey
25.08.2018
10:11:23
шо посоны, кто уже потыкал vgo?
Как его завести то? обновлися до 1.11 создал папку вне gopath и go mod init пишет: go: cannot determine module path for source directory /media/terro/PROJECT/GOLANG/anime/api (outside GOPATH, no import comments)

понятно еще имя нужно указать ?

Olzhas
25.08.2018
10:19:59
создай файл go.mod

в нем напиши module myModuleName

потом go get ./

Aleksandr
25.08.2018
10:36:40
шо посоны, кто уже потыкал vgo?
средне. пару дней назад отписывался.

Sergey
25.08.2018
11:15:02
потом go get ./
а папка vendor не должна создасться при этом?

Olzhas
25.08.2018
11:15:07
нет

Aleksandr
25.08.2018
11:25:40
а папка vendor не должна создасться при этом?
Но можно для легаси проектов

Sergey
25.08.2018
11:27:22
Но можно для легаси проектов
я просто подумал что зависимости коряво скачались, но потом увидел что в goland появилась менюшка с зависимостями проекта

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