
Daniel
06.08.2018
14:26:23
в общем - да, норм.

Alan
06.08.2018
14:32:32

User ?
06.08.2018
14:35:43
Привет, кто работал с go + golang.org/x/crypto/ssh?
Я хочу сделать sudo su - и выполнить несколько команд после этого в рутовом окружении. Но не знаю как это сделать

Alexander
06.08.2018
14:41:13
Всем привет, я тут в субботу спрашивал почему вставка в базу тормозит - никто не посмотрел случайно ?

Google

Daniel
06.08.2018
14:41:29
я обещал, но не сделал
посмотрю вечером

Dmitry
06.08.2018
14:44:04
Если кто принимал попытки прошариться в kuberenetes да и просто о нем наслышан, будет интересно попробовать ui с дополнительным функционалом к kubernetes, софтина open source, написана на go) contributing, звезды и issues приветствуются⭐ https://github.com/containerum/containerum

Roman
06.08.2018
15:06:57
Передавать опции методу запроса типа database.Query(ctx, query) через context.Context рассматривается нормальной практикой?

Vadim
06.08.2018
15:11:06
Мапа ведь по поинтеру передается?)

John
06.08.2018
15:13:19

Artem
06.08.2018
15:21:41


Roman
06.08.2018
15:23:08
WithBatchID
WithConfigured
WithDBServerID
WithDetails
WithEndpoint
WithEnforceReplicationFactor
WithFollowLeaderRedirect
WithIgnoreRevisions
WithImportDetails
WithIsRestore
WithIsSystem
WithJobIDResponse
WithKeepNull
WithMergeObjects
WithQueryBatchSize
WithQueryCache
WithQueryCount
WithQueryFullCount
WithQueryMemoryLimit
WithQuerySatelliteSyncWait
WithQueryStream
WithQueryTTL
WithRawResponse
WithResponse
WithReturnNew
WithReturnOld
WithRevision
WithRevisions
WithSilent
WithWaitForSync

Artem
06.08.2018
15:24:48
ну если ты её юзаешь, то пожалуйста

Roman
06.08.2018
15:24:58
опций для запроса у них дохера, но вот чёт мне кажется, что передавать их контекстами это полный ад как с точки зрения usability так и с точки зрения производительности и затрат ресурсов
и вот не могу понять, толи они лоханулись, толи я не прав

Google

Roman
06.08.2018
15:26:04
параметрами передавать разумеется не получится, а вот структурой... почему не структурой options?

Artem
06.08.2018
15:28:57
https://golang.org/pkg/context/
Use context Values only for request-scoped data that transits processes and APIs, not for passing optional parameters to functions.
как-то так

Roman
06.08.2018
15:29:12
context'ы это же сплошная динамика, указатель на указатель на указатель......
в то время как структуру можно сделать очень дешёвой с точки зрения потребления ресурсов, например
type QueryOptions struct {
WithBatchID bool // false by default
WithDBServerIDs []string // nil by default
WithQueryBatchSize int64 // -1 = unset by default
}
и в конце концов это:
arango.db.Query(ctx, `query`, nil, arango.QueryOptions {
WithBatchID: true,
WithQueryBatchSize: 64,
})
выглядит гораздо приятнее нежели:
ctx = arango.WithBatchID(context.Background(), true)
ctx = arango.WithQueryBatchSize(ctx, 64)
arango.db.Query(ctx, `query`, nil)
я прав или я прав?
короче пойду я issue писать.. который они скорее всего никогда не реализуют, но... надо Федя, надо!

Marperia
06.08.2018
15:36:32

Nikolay
06.08.2018
15:39:56

Roman
06.08.2018
15:40:09

Nikolay
06.08.2018
15:40:18
клонируешь репу, смотришь ишуи, пытаешься разобраться

Vladimir
06.08.2018
15:40:52
общаешься с разработчиком и т.п.
еще можно просто свои поделки выкладывать на гитхаб по максимуму

⚓D
06.08.2018
15:42:11

Marperia
06.08.2018
15:43:07

Виктор
06.08.2018
15:44:02
&& используется, когда нужно прервать выполнение следующих команд, если текущая не выполнилась. ; соответственно, чтобы все комнады подряд выполнились

Dmitry
06.08.2018
15:44:13
&& или в .sh файл инструкции, а потом его выполняй

Daniel
06.08.2018
15:44:26
коллеги, давайте без содомии
&& - это обрабатывается шеллом. надо ли его запускать в этом раскладе?

Google

⚓D
06.08.2018
15:45:58

Daniel
06.08.2018
15:47:25
sudo su -, впрочем, предполагает запуск шелла, потому как su - - это имитация логина рутом.
но нужен ли тут su -?
я вот вообще не стал реагировать, потому как вопрос мутный и не про гошечку

Roman
06.08.2018
15:55:29

Daniel
06.08.2018
15:56:00
вопрос не ясен

Artem
06.08.2018
15:56:02
да, но не в доках

Daniel
06.08.2018
15:56:21
существует рекоммендация не использовать для передачи параметров контекст

Artem
06.08.2018
15:56:36
в докладах всяких говорят об этом
вообще где-то видел, что рекомендуют передавать всё явно: есть 10 опциональых параметров - функция принимает 10 аргументов

Roman
06.08.2018
16:03:29
моё мнение на данный момент мало кого интересует, к сожалению)) пока ...ещё..)

Artem
06.08.2018
16:06:24

Daniel
06.08.2018
16:07:01

Roman
06.08.2018
16:08:03

Daniel
06.08.2018
16:10:23

Ilya
06.08.2018
16:15:21

Roman
06.08.2018
16:17:05
вообще-то нет. вообще-то как раз запрос к базе правильно оформлять максимально специфично
я соглашусь с тем, что некоторые опц. параметры можно было бы убрать и взамен описать функции, типа WithWaitForSync который можно бы было превратить в database.QuerySync()
однако тут присутствует куча малых модификаторов типа WithReturnOld, WithQueryCache, WithImportDetails и т.д. для которых делать отдельные функции по моему мнению - непрактично, их легче передать в опциональной структуре передаваемой фунции

Google

Daniel
06.08.2018
16:19:38
еще как практично.
1. сразу видно, что именно запрашивается. легче читать.
2. проще менять логику запроса к базе не затрагивая логику запроса от пользователя. легче писать.
3. сложнее забыть передать что-нибудь важное, что влияет на выборку. легче отлаживаться

Roman
06.08.2018
16:21:30
20 опций == 400 комбинаций // true

Daniel
06.08.2018
16:22:29
не все 400 реально нужны
я, короче, разные выборки всегда оборачиваю в разные функции
и всем рекомендую
(и на всех языках так делал)

Roman
06.08.2018
16:23:33
ну это уже разработчику библиотеки виднее, что реально нужно а что нет, тут сложно что-либо сказать.
Но вопрос скорее о том, "как передавать опциональные параметры", а не "когда их лучше избежать"
ну явно-ж не так:
log.New(true, false, true, false, false, false, true, false, false, false, true, false, true)
да и не так тоже:
log.NewWithDateTimeAndUserAndSystemAndLocalTime()
очевидно же что флаги типа:
log.New(log.DateTime | log.System | log.User)
для данной проблемы передачи опциональных параметров - в самый раз

Daniel
06.08.2018
16:27:07
логгер - не база
и если эти опции можно было бы переда конструктору хендлера базы - я бы не возражал
да и в query мы тоже передаем опции, конечно же. например - userID, etc
но есть граница.


Roman
06.08.2018
16:28:48
логгер - не база
я не знаю эту базу настолько хорошо, насколько её знают разработчики. Мне сложно сказать, нужны ли здесь реально эти опциональные параметры или нет. Я исхожу из той ситуации, что они (опциональные параметры) есть - но реализованы через жопу вопреки рекомендациям и здравой логике ответственного разработчика.
Моя задача написать убедительный issue и предложить вариант(ы) решения ?
бл@ть такое чувство что JavaScript'ер над этой библиотекой работал:
// WithQueryCount is used to configure a context that will set the Count of a query request,
// If value is not given it defaults to true.
func WithQueryCount(parent context.Context, value ...bool) context.Context {
v := true
if len(value) > 0 {
v = value[0]
}
return context.WithValue(contextOrBackground(parent), keyQueryCount, v)
}
накой ху@ столько динамики?
накой ху@ абъюзать variadic parameters в качестве опциональных параметров?!
опциональный параметр в конструкторе опционального параметра Карл! ну ёпамать!!
при этом ещё для каждого опционального параметра, для каждого запроса создавать context.Context, которые все потом мусоросборщику собирать.. блеееаааа
слава богу они ещё и контексты не передают указателями


Daniel
06.08.2018
17:08:04
ну вот показанный кусок - реально криминальный

Google

Foxcool
06.08.2018
17:17:52
А юзает кто Goland? Как включить автоформат или лучше импортс кода при сохранении?
вроде в гуглах есть ифна о насторйках, но они куда-то пропали в новой версии похоже

Pavel
06.08.2018
17:18:33
в настройках есть поиск по настройкам
вбей там import
и посмотри

Foxcool
06.08.2018
17:18:43
вбил

Subbotin
06.08.2018
17:21:21
прости но ты разбил мне сердце

DreamingKitten
06.08.2018
17:26:49
Скажите, а есть какая-то возможность разделить $GOPATH/src и $GOPATH/bin на разные разделы?
пишу под виндой и gopath у меня на сетевой шаре, с которой запуск экзешников почему-то запрещён несмотря на все мои танцы с бубном. соответственно всё что собирается в exe - не запускается
оно бы и хрен с ним, потому что целевая ось — линух, там всё работает ок. но всякие линтеры и прочее хочется чтобы работало

Михаил
06.08.2018
17:28:48
тут можно тупые вопросы задавать?

Daniel
06.08.2018
17:29:16
а го тур пройден?

Михаил
06.08.2018
17:30:51
а го тур пройден?
я читаю golang-book.ru и не понял код оттуда, может кто сможет пояснить