
Olzhas
24.08.2018
13:26:11

Dmitry
24.08.2018
13:28:04

Aleksandr
24.08.2018
13:28:22
по крайней мере так сдк у них сделано

Google

Алексей
24.08.2018
13:28:45

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

Дед Пегас
24.08.2018
13:30:08

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

Алексей
24.08.2018
13:31:07

Dmitry
24.08.2018
13:31:25

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

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

Kirill
24.08.2018
13:31:58

Dmitry
24.08.2018
13:31:59

Google

Дед Пегас
24.08.2018
13:32:32

Dmitry
24.08.2018
13:32:39

Kirill
24.08.2018
13:34:20

Mike
24.08.2018
13:35:37

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

Дед Пегас
24.08.2018
13:37:40

Kirill
24.08.2018
13:37:47

Dmitry
24.08.2018
13:38:09

Kirill
24.08.2018
13:38:17
ну

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

Kirill
24.08.2018
13:38:40

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

Kirill
24.08.2018
13:50:44


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
}
.......
}

Vladislav
24.08.2018
16:02:25

Artem
24.08.2018
16:03:25
чтобы понять ошибка или все же вышло

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) создает гет запрос?

Лемур
24.08.2018
16:18:55

Fastumkruk ✅
24.08.2018
16:19:03

Aleksandr
24.08.2018
16:20:09

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

Sergey
25.08.2018
11:15:02

Olzhas
25.08.2018
11:15:07
нет

Aleksandr
25.08.2018
11:25:40

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