@gogolang

Страница 1251 из 1630
Aleksandr
24.07.2018
19:41:32
текст ошибки приведи

Artem
24.07.2018
19:43:35
в goland нет ошибок просто выходит как то из дебага в vs code Failed to continue.

в функции doSomeWork msg, description := doSomeWork(createSlice[i], update.Message.Chat.ID) bot.Send(msg) выполняется такой код msg := tgbotapi.NewPhotoUpload(chatID, fileName) msg.Caption = data.Name description = data.Description return msg, description

Aleksandr
24.07.2018
19:49:49
маловато данных

Google
Artem
24.07.2018
19:59:40
по сути логика следующая //возвращает файл/картинку название и описание file, caption, description := doSomething(slice[0], chatID) //отдаем все юзеру msg := tgbotapi.NewPhotoUpload(chatID, file) msg.Caption = caption bot.Send(msg) //сюда уже не проходит // те после картинки и названия идет подробное описание msgDescription := tgbotapi.NewMessage(chatID, description) bot.Send(msgDescription)

это не работает только в дебаге

без дебага вся последовательность отрабатывает

но так я не могу проследить то что мне нужно(

Aleksandr
24.07.2018
20:08:31
мало данных

Andrei
24.07.2018
20:29:47
но так я не могу проследить то что мне нужно(
Всегда можно сделать нормальное логирование и выкинуть дебагер

Slava
25.07.2018
01:13:00
https://twitter.com/sethvargo/status/1021887669368811520

Pawel
25.07.2018
04:53:44
https://blog.golang.org/go-cloud
О, спасибо, не знал про такую тему. Бум теперь юзать облако амазона

The
25.07.2018
06:10:15
ребятки, если в QueryContext() передавать контекст, и во время одного из вызовов rows.Next() он будет закрыт, то rows.Next() вернет false и цикл прервется?

судя по всему, сам запрос - отдельно, а роусы к нему отдельно, и их сканнинг от контекста не зависит.

The
25.07.2018
06:38:23
я гляну чуть позже на него, а кто-то возвращает коллекцию из базы через канал? т.е., делает запрос, получает ответ, создает канал, запускает горутину сканирующую значения, и сразу же возвращает канал, а горутина сканирует и пишет в канал отсканненые модели.

вроде отправка в канал не очень быстрая

Google
The
25.07.2018
06:39:26
ну т.е. может лучше аппендить в слайс и его возвращать.

кто-то может заморачивался по этому поводу или имеет какие-то мысли?

аппенд в слайс ок, но когда у нас выборка например товаров штук 100000, нужно курсором как-то читать, чтобы все в память не писать.

думаю может сделать два метода, для маленьких выборок - слайсом возвращать, а для больших, что-то вроде курсора придумать.

Daniel
25.07.2018
06:41:56
вроде отправка в канал не очень быстрая
опять... где вы этого нахватались? вы только что по сети сходили, подождали выборку, распарсили ответ. канал на этом фоне вы даже померять не сможете. но "вроде не очень быстрая"

The
25.07.2018
06:42:34
ну если сравнить отправку в канал, и аппенд в слайс

Daniel
25.07.2018
06:42:48
зачем их сравнивать?

что вы от результата ждете?

The
25.07.2018
06:43:12
затем, что это два альтернативных варианта как получать данные из базы, через канал, или уже готовый слайс.

Daniel
25.07.2018
06:44:00
так вот, при прочих расходах эти два метода одинаковые, занимают 0. но канал при этом уже способен работать с горутинами

The
25.07.2018
06:44:39
ну т.е. вы говорите, что канал "чуть лучше" в этом плане?

Daniel
25.07.2018
06:45:22
канал существенно лучше для передачи чего бы то ни было между горутинами

The
25.07.2018
06:45:59
окей, наверное тогда попробую пойти по пути каналов.

Anton
25.07.2018
07:38:26
всем ? правильно ли я делаю: допустим, мне нужен некий тип ShortTime, который как бы "наследуется" от time.Time, и у него я просто хочу переопределить методы MarshalJSON и UnmarshalJSON, чтобы при работе с json он понимал строки типа "15:00", "12:20" и т.д. пробовал делать так: type ShortTime time.Time но тогда при работе с ним его нужно постоянно "конвертировать" в/из time.Time, например, func (st *ShortTime) DoSomething() { t := time.Time(*st) // сделать что-то с t *st = &ShortTime{t} } остановился на варианте "embedding": type ShortTime struct { time.Time } таким образом все методы time.Time доступны сразу на переменной типа ShortTime, но тут тоже возникает вопрос, использовать embedding time.Time или через поинтер *time.Time.

Daniel
25.07.2018
07:39:35
а зачем через поинтер?

Anton
25.07.2018
07:41:57
да чёрт его знает, в этом в принципе тоже вопрос, нужен ли поинтер. у меня с ними пока не очень простые отношения, т.к. нет бэкграунда нормальных языков, только js ?‍♀️

Daniel
25.07.2018
07:44:07
ага

тогда не пользуйте пока :)

как вылезет "я меняю значение, а оно не меняется" - так и поймете, где использовать поинтер

Google
Anton
25.07.2018
07:48:28
с поинтерами пока не могу сказать, что мне всё понятно, потому что тут ещё есть особенности реализации библиотек. например, если я использую github.com/satori/go.uuid и определяю модели типа type Model struct { ID *uuid.UUID `json:"id,omitempty"` Name string `json:"name,omitempty"` } то для ID мне нужен поинтер с точки зрения реализации библиотеки satori/go.uuid, потому что иногда я хочу его скрыть из ответа, и если там был бы не поинтер, а просто uuid.UUID, а значения не было бы, то оно отдавало бы "нулевой" uuid, "00000000-0000-0000-0000-000000000000", а так я могу ему сделать m.ID = nil, и его не будет. хотя я бы с радостью и тут не использовал поинтеры.

V
25.07.2018
08:11:35
но ведь это фича джейсон маршаллинга

Anton
25.07.2018
08:13:47
вот кстати про этот вопрос, правильно ли я понимаю, что omitempty игнорирует нулевые значения в кастомных MarshalJSON методах? например, type MyUUID struct { uuid.NullUUID } type Model struct { ID MyUUID `json:"id,omitempty"` } func (u MyUUID) MarshalJSON() ([]byte, error) { fmt.Println("valid", u.Valid) if !u.Valid { return json.Marshal(nil) } return json.Marshal(u.NullUUID) } m := Model{} json.NewEncoder(os.Stdout).Encode(m) valid false { "id": null }

т.е. то, что там omitempty, а маршалится nil, ему как бы всё равно

и единственный способ — использовать поинтер

V
25.07.2018
08:30:37
omitempty в этой либе игнорируется, т.к. там свой кодек, который переопределяет UnmarshalText

Artem
25.07.2018
08:33:38
всем привет снова вопрос по hugo не могу понять почему он не тянет css в themes/theme-name/layouts определены laytouts для страниц в partials определены header & footer в которых берутся css из каталога project/static/css на основе project/archtypes/default.md создается файл по шаблону project/themes/theme-name/layouts/items/single.html в котором также прописаны {{partial "header.html" . }} и {{partial "footer.html" . }} = project/content/item.md но вот стили css к нему уже не тянутся не понимаю (((



Anton
25.07.2018
10:29:22
это наркомания :(

Anton
25.07.2018
10:32:20
а это вот *st = &ShortTime{t} ?
логика такая была, например, нужен метод, который добавляет 1 час: type ShortTime time.Time func (st *ShortTime) AddOneHour() { t := time.Time(*st) // тут добавляем час // и через поинтер присваиваем в st новое значение *st = &ShortTime(t) } то, что там фигурные скобки — очепятка, имел в виду круглые

Daniel
25.07.2018
10:33:22
нет, с круглыми ничего не выйдет

Anton
25.07.2018
10:33:38
если ShortTime struct, то да

а это пример был когда type ShortTime time.Time

Daniel
25.07.2018
10:33:57
а если нет, то & перед ней будет ошибкой

а, ок

Anton
25.07.2018
10:36:33
да, & лишний

Pawel
25.07.2018
10:46:49
да я к тому что там как раз таки через пойнтер надо метод делать

Stanislav
25.07.2018
10:54:41
тут вопрос назрел. go vs c# ?

Google
Женя
25.07.2018
10:56:31
?‍♂️

Aleksey
25.07.2018
10:56:51
тут вопрос назрел. go vs c# ?
А какой контекст? Чего ты хочешь?

Если холивара, то победит гладиолус.

Stanislav
25.07.2018
10:57:25
язык хочу быстрый серверный

Olzhas
25.07.2018
10:57:53
язык хочу быстрый серверный
ну если хочешь винду на сервере

Sergey
25.07.2018
10:57:55
язык хочу быстрый серверный
я думаю тут скорее вопрос будет к тому, а что разрабатывать на нем надо?

Admin
ERROR: S client not available

Olzhas
25.07.2018
10:58:00
Alan
25.07.2018
10:59:23
Stanislav
25.07.2018
11:00:06
я не хочу холивара я хочу какой то обьективной оценки чтобы понимать что у го есть какой то смысл вообще

ну типа го умеет то что не умеет шарп, окей убедили

Виктор
25.07.2018
11:01:15
для го не нужен .net, из очевидного

Alan
25.07.2018
11:01:44
чтобы приводить аргументы в пользу того или иного, нужно сначала определиться с требованиями

Aleksey
25.07.2018
11:01:59
язык хочу быстрый серверный
Бери ASM, быстрее не бывает

Sergey
25.07.2018
11:01:59
ну типа го умеет то что не умеет шарп, окей убедили
чего умеет перфоратор, чего не умеет молоток? Это просто разные инструменты, какая задача?

Olzhas
25.07.2018
11:02:25
Stanislav
25.07.2018
11:02:40
ну ребята я не думаю что у го и шарпа прямо уж такие разные задачи чтобы строить демагогию на этом

Olzhas
25.07.2018
11:02:42
жвм вообще топчик

Виктор
25.07.2018
11:03:05
жвм вообще топчик
ага, хочешь пиши на джаве, хочешь - на скале, хочешь на jython вообще

Google
Stanislav
25.07.2018
11:03:05
и там и там есть асинхронка, шарп разве что шедулится по ядрам не так красиво

Aleksey
25.07.2018
11:03:06
лучше жабу брать
не так быстро, оверхед излишний. Сказано же — человек хочет скорости. Вот, асм и кокаин

Aleksey
25.07.2018
11:03:39
жаба медленная?
напиши тоже самое на асме и сравни :)

Только ты хорошо пиши

Stanislav
25.07.2018
11:03:50
а можно без школьников-тролей ?

Данила
25.07.2018
11:04:05
Как можно задать имя бинарника и директорию, куда он соберется при выполнении go build?

Olzhas
25.07.2018
11:04:06
Только ты хорошо пиши
вот в этом то и проблема

Anton
25.07.2018
11:04:24
напиши тоже самое на асме и сравни :)
до сих пор мнение, что ручками написанный на асме код лучше того, что генерит компилятор?)

Алексей
25.07.2018
11:04:57
Stanislav
25.07.2018
11:06:04
до сих пор мнение, что ручками написанный на асме код лучше того, что генерит компилятор?)
до сих пор вспоминать асм когда речь про высокоуровневые языки

Anton
25.07.2018
11:06:08
наверное, когда есть куча времени, гора кокаина и адовое желание потрахаться, то стоит заморачиваться с асмом...

Stanislav
25.07.2018
11:06:15
хотя да, гошечка же не умеет ничего что умеют высокоуровневые языки

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