@gogolang

Страница 835 из 1630
Виктор
19.02.2018
11:02:40
Это грубо говоря папка в которой ты работаешь

Andrey
19.02.2018
11:02:54
Ага, может вам и понятно, а я только открыл доку и это ничего не говорит новичку )
утилиты типа go build, go run, dep и тд по переменной GOLANG определяют, где у вас исходники, где бинарники

Виктор
19.02.2018
11:03:04
в го нельзя (не надо) создавать отдельыне папки допустим на рабочем столе и там билдить и делать все

Dmitry
19.02.2018
11:03:14
Так. Если я как советуют в доке создам для GOPATH каталог C:\go-work, то я смогу проекты писать в каатлоге D:\Projects\Go

Google
Виктор
19.02.2018
11:03:20
там у тебя будут и библиотеки твои

и твои проекты

и ты сможеь утилитами билдить говоря просто namespace твоего проекта

и т.д.

Andrey
19.02.2018
11:03:48
сделай GOPATH=D:\Projects\Go

твои проекты будут в D:\Projects\Go\src

скомпилированные бинарники в D:\Projects\Go\pkg

и советую сразу использовать go dep

Dmitry
19.02.2018
11:04:51
Мдэээ... очень неудобно для меня.

Andrey
19.02.2018
11:05:22
Это очень удобно для тебя

Paul
19.02.2018
11:05:50
Мдэээ... очень неудобно для меня.
gopath - это пути, где go ищет библиотеки для include. никто не запрещает хранить свой код где угодно

а сторонние либы и кэши - в gopath

Dmitry
19.02.2018
11:06:26
У меня не все проекты в одном каталоге будут. Условно часть в d:\PetProject, а другие в d:\CoolProject

Google
Dmitry
19.02.2018
11:06:38
Значит придётся переписывать GOPATH

Или можно через точку с запятой перечислить?

Paul
19.02.2018
11:07:09
Значит придётся переписывать GOPATH
нет. не придется. Выше же написал

Dmitry
19.02.2018
11:07:50
А, всё увидел. Круто тогда

Виктор
19.02.2018
11:08:14
Это по началу неудобно)

Когда первый раз встерчаешь такой подход становится неуютно. Особенно если перешел с С++ или С#.

Но потом видишь в этом только плюсы и удобства

分解物質
19.02.2018
11:10:29


аааааааа

Andrew
19.02.2018
11:12:42
Жиза.

John
19.02.2018
11:13:11
Никогда не понимал, зойчем собирать в докере ... =\

Виктор
19.02.2018
11:13:55
Зачем...непонятно. Единственное зачем это нужно чтобы изолировать среду. Можно иметь докер билдер образ. В нем билдить ,высовывать готовый бинарик и в другой образ пихать чтобы иметь легковестный контейнер

Айбелив
19.02.2018
11:14:46
Никогда не понимал, зойчем собирать в докере ... =\
1. удобно 2. если проекты на разных версиях go, не будешь же ты ставить много разных версий

Виктор
19.02.2018
11:15:34
Еще удобно это тем что с помощью compose ты можешь одной командой поднять проект на машине не имея рабочего окружения и тебе не нужно будет иметь все библиотеки а толкьо то что нужно

Айбелив
19.02.2018
11:15:36
Виктор
19.02.2018
11:15:54
ты в продакшен зависимый не ходишь?)

Айбелив
19.02.2018
11:16:19
3. Если выкат в kubernetes или ещё куда, то docker — это не только удобно, но и необходимо.

Виктор
19.02.2018
11:17:00
Но даже в кубик лучше не онбилд а уже бинарик делать. Ресурсы не резинвоые. Иметь онбилд образ для каждого проекта

Google
Andrew
19.02.2018
11:17:13
ты в продакшен зависимый не ходишь?)
Вот выпустили новую версию Go. Пишут в чейнджлоге, что исправили одно, другое. Думаю, тестами тоже покрыли. Так что новая версия должна быть стабильнее ?

Виктор
19.02.2018
11:17:45
Ну так то оно так. И так делают про любой язык программирования. У кого-то изменения стабильные у кого-то нет.

НО

Daniel
19.02.2018
11:17:50
есть несколько поводов собирать в докере

Виктор
19.02.2018
11:17:50
ты не можешь это гарантировать

это раз

Daniel
19.02.2018
11:18:05
1. современные CI собирают в докере

Виктор
19.02.2018
11:18:07
2. Этого не могут гарантировать создатели СТОРОННИХ библиотек

Alexander
19.02.2018
11:18:10
Виктор
19.02.2018
11:18:15
а ты от них зависим

Daniel
19.02.2018
11:18:32
2. вместе с CGO не бывает кроскомпиляции

Daniel
19.02.2018
11:18:57
3. CGO + so libs требуют определенного окружения

4. Dockerfile с успехом заменяет Makefile

Andrew
19.02.2018
11:19:46
ты не можешь это гарантировать
Не, ну я надеюсь, что с каждой версией тестов всё больше и больше. Соответственно, багов меньше ))

Виктор
19.02.2018
11:19:54
А compose c machine заменяет десяток мейкфайлов и скриптов)

Daniel
19.02.2018
11:19:55
5. этот способ потестировать сборку "с белого листа"

Виктор
19.02.2018
11:20:09
Ну надеятся то ты можешь. Но гарантировать не можешь)

Да и зависимость отбагов или апи предыдущих версий никто не отменял

V
19.02.2018
11:20:45
а если проект (сингл репозиторий) микросервисный и не все сервисы на го, то удобно ли организовывать проект с глобальным-то gopath?

Google
Dmitry
19.02.2018
11:20:47
Andrew
19.02.2018
11:21:51
Какой-то идеальный мир. А так вообще в реальности бывает?
Почему же. Нашли баг, запилили патч, накатали тест чтобы больше баг не проявлялся. С каждой итерацией тестов всё больше. Профит.

Виктор
19.02.2018
11:21:58
обычно микросервесный проект организовывают на докермашин(и наверное проще иметь для него одну дирректорию или правильную сборку из репозитория)

Виктор
19.02.2018
11:22:10
Ну так то да. Но баги то откуда-то все равно есть?)

Го язык молодой как бы

Виктор
19.02.2018
11:24:18
ну я имею ввиду обычно под словом(классически) кубернетсы это чутьболее новая штука(и более хорошая естественно). Правда я к ней только только иду :)

Admin
ERROR: S client not available

Виктор
19.02.2018
11:24:28
Не подскажите кстати что по ним ЛУЧШЕ почитать?

Айбелив
19.02.2018
11:25:04
Не подскажите кстати что по ним ЛУЧШЕ почитать?
https://t.me/kubernetes_ru доку и https://github.com/kelseyhightower/kubernetes-the-hard-way

Виктор
19.02.2018
11:25:33
Спасибо :)

Айбелив
19.02.2018
11:26:40
учитывая, что под яблоками kubernetes из коробки, то вообще не нужно заморачиваться

Ильдар
19.02.2018
11:27:16
Всем привет! Хочу протестировать скорость записи и чтения памяти. Выполняю в цикле: var buf bytes.Buffer p := []byte("...") // 1024 байт buf.Write(p) Считаю количество циклов, делю на время выполнения, получаю скорость. И она примерно соответствует действительности. Далее пытаюсь тоже самое сделать для чтения через p = buf.Bytes() но ничего не выходит, независимо от размера buf - выполняется безмерно большое количество циклов за выделенное время, и оно не меняется от размера buf, что свидетельствует о том, что при p = buf.Bytes() (и любых аналогичных методах чтения), самого чтения не происходит. Происходит лишь перестановка указателя, как я понял. Вопрос: как имитировать чтение в никуда?

Ильдар
19.02.2018
11:35:18
Другими словами, если я после p = buf.Bytes() провожу какие-либо действия с p, то чтение происходит. А если не произвожу никаких действий, то и чтения реального не происходит. Какое-то нейтральное действие с p нужно сделать, а какое - не знаю. Просто перебрать его побайтово в цикле - не вариант. Это ресурсоёмко получается.

Andrew
19.02.2018
11:37:03
Ммм, предлагаю делать io.Copy из buf в /dev/null

Igor
19.02.2018
11:40:07
io.Discard

Ильдар
19.02.2018
11:41:03
Спасибо! Сейчас попробую...

Google
Kirill
19.02.2018
11:41:39
io.Discard
в соседнем чате предлагал как раз

только не io ?

Igor
19.02.2018
11:42:45
ага)

запамятовал

Ильдар
19.02.2018
11:43:03
ioutil.Discard

Не помогло.

p := bytes.Repeat([]byte("1"), 1024) r := bytes.NewReader(p) и потом в цикле: io.Copy(ioutil.Discard, r)

По идее, при изменении 1024 на бОльшее значение, количество циклов в ограниченный отрезок времени должно уменьшаться, так как на запись уходит дольше времени...

Но этого не происходит.

Пробовал 1024 (1 килобайт) увеличить до 1000 мегабайт даже.

При любом раскладе у меня получается 37 399 239 циклов в секунду, что соответствует 35 Гигабайтам данных в секунду, чего на DDR3 быть не может.

При записи, причём, всё в порядке. При увеличении объёма 1 записываемого блока через buf.Write() число циклов пропорционально снижается.

Всё, понял... туплю я.

Andrew
19.02.2018
12:17:02
Всё, понял... туплю я.
И в чём секрет?

Ильдар
19.02.2018
12:18:34
io.Copy(ioutil.Discard, r) дважды не выполняется. Он доходит до конца r и всё.

Fduch
19.02.2018
12:24:58
А как ГО на ФрииБСД себя чувствует? FreeBSD 8.2-RELEASE $ go version go version go1.10 freebsd/386 $ go run hello.go go tool compile: pipe: function not implemented гуглил, ни чего не нагуглил.

Fduch
19.02.2018
12:25:47
то есть на 8.2 вариантов нет?

Vladimir
19.02.2018
12:25:53
обновится :D

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