@gogolang

Страница 1232 из 1630
Janserik
17.07.2018
13:07:28
ну это естественно!

/dev/null
17.07.2018
13:07:32
Потом написать несколько своих роутеров... и ты готов)

Всем привет. С чего начать чтобы писать бэкенд на GO? Подскажите. Я так понял для того чтобы написать бэкенд, надо GO связать с БД и написать API? Так? Это основные задачи?
слишком общий вопрос... из него кажется что Вы никогда не писали REST API... в этом случае тут вам скорее всего не помогут

Google
/dev/null
17.07.2018
13:12:12
Не писал еще backend
Прочти сначала Язык программирования Go, а потом Go на практике

Aleksandr
17.07.2018
13:44:31
можно

Kirill
17.07.2018
13:47:52
Разрешаем, конечно

?

Aleksandr
17.07.2018
14:00:10
https://goo.gl/9W16QB

GoodMoodDealler
17.07.2018
14:30:31
Срочно нужна помощь

Как удалить историю комитов с гитхаба

Jentry
17.07.2018
14:31:32
Как удалить историю комитов с гитхаба
rebase и push с форсем в ветку, ты там что заказчика отматерил в коммитах?

Tigran
17.07.2018
14:31:56
да не, скорее всего креденшиалы запалил

Aleksandr
17.07.2018
14:32:00
Срочно нужна помощь
а зачем сюда пишешь? google => git clear history

GoodMoodDealler
17.07.2018
14:32:34
rebase и push с форсем в ветку, ты там что заказчика отматерил в коммитах?
Не, я работал с компа девушки и у меня в first commit прописалось ее авторство

Tigran
17.07.2018
14:33:15
?

Vladimir ?
17.07.2018
14:35:50
git commit --amend git push -f

Google
Aleksandr
17.07.2018
14:38:32
это ты искал ответ на вопрос

Dmitriy
17.07.2018
15:22:51
go func(prefix string) { defer wg.Done() q := &storage.Query{Versions:false, Delimiter:"/", Prefix: prefix} it = scl.Bucket(bucketName).Objects(ctx, q) for { attrs, err := it.Next() if err == iterator.Done { break } fmt.Println(attrs.Prefix) } }(prefix) не могу понять почему мне возвращает panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x142e6a5]

(((

Slava
17.07.2018
15:23:41
это на какой строчке?

подозревая что в fmt.Println(attrs.Prefix)

Dmitriy
17.07.2018
15:24:05
это если внутри рутини у меня for отрабатывает

for { attrs, err := it.Next() if err == iterator.Done { break }

Slava
17.07.2018
15:24:48
ошибка на какой строчке возникает?

Dmitriy
17.07.2018
15:26:24
стектрейс говорит что в it.Next

возможно гугловский иттератор не умеет работать с рутинами (

Aid
17.07.2018
15:27:07
Может проверку done выше двинуть?

Slava
17.07.2018
15:27:38
горутины тут вообще не причём

ошибка у вас возникает потому что вы пытаетесь разыменовывать nil

если на строке it.Next(), значит it у вас nil

проверьте что у вас в it

Dmitriy
17.07.2018
15:31:42
добро. спасибо.

идея просто каждый элемент слайса в рутину запустить. может коряво написал

for _, prefix := range prefixes { wg.Add(1) go func(prefix string) { defer wg.Done() q := &storage.Query{Versions:false, Delimiter:"/", Prefix: prefix} it = scl.Bucket(bucketName).Objects(ctx, q) fmt.Println(prefix) fmt.Println(it) for { attrs, err := it.Next() if err == iterator.Done { break } fmt.Println(attrs.Prefix) } }(prefix) }

идея так была сделать

Hokusai
17.07.2018
15:35:06
Кстати кто еще сталкивался с причудами итерации над массивом и передачи поинтера на элемент в горутину?

Google
Anton
17.07.2018
15:48:14
всем ?? может кто сталкивался: указываю тэг json:"name,omitempty" для вложенного struct'а (важная часть — omitempty), этому вложенному стракту переопределяю метод MarshalJSON и этот метод иногда возвращает пустую строку. и в результате omitempty игнорируется, как-то так: type Something struct { Name TranslatedString `json:"name,omitempty"` } type TranslatedString struct { lang string Ru string `json:"ru,omitempty"` En string `json:"en,omitempty"` Cn string `json:"cn,omitempty"` } func (s *TranslatedString) MarshalJSON() ([]byte, error) { var str string switch s.lang { case "ru": str = s.Ru case "cn": str = s.Cn } if str == "" { str = s.En } return json.Marshal(str) }

в результате в json'е пустая строка (вместо отсутствия поля вообще): { "name": "" }

Aleksandr
17.07.2018
16:12:24
type Something struct { Name *TranslatedString `json:"name,omitempty"` }

если так переделать, то Name будет nil, и name опустится из json

Anton
17.07.2018
16:13:57
type Something struct { Name *TranslatedString `json:"name,omitempty"` }
да, спасибо, чё-то замылился взгляд ?‍♀️

@zelenin я правда переделал уже, потому что понял, что будет сложно при работе с API (клиентам надо показать просто строку, а админам json со всеми полями). вот такой нормальный подход к "переопределению" полей для разных вариантов представления одних и тех же структур? https://gist.github.com/egorovli/41c1e94c370667f96321f12c65424783

Aleksandr
17.07.2018
16:31:32
вроде норм

Anton
17.07.2018
16:33:27
ок, спс ?

Человек
17.07.2018
17:25:16
Здравствуйте, кто может подсказать где и какими способами можно хранить большие объемы данных кроме БД. Есть боты примерно несколько тысяч/десятков тысяч, нужно хранить данные, комманды и т.д причем данные обновляются каждый день по несколько раз, а БД на более чем 200 ГБ ооочень дорогие.

Человек
17.07.2018
17:26:38
бинарные файлы?
Не, обычный текст, данные о диске, проце, видюхе и т.д

many-faced
17.07.2018
17:26:54
Человек
17.07.2018
17:27:38
суперхацкер, шоль?
я вообще не из этой оперы

Aleksandr
17.07.2018
17:27:40
ботовод-любитель

готовит апокалипсис, а пока собирает данные с компов из сетки

Kirill
17.07.2018
17:28:23
орно звучит

на диске
ну - мой ответ таков

не хочешь БД - храни на диске

Google
Kirill
17.07.2018
17:29:15
но потом всё равно родишь БД

когда соберешь все грабли в округе

Aleksandr
17.07.2018
17:30:47
мне представляется, что человек с тысячами ботов на руках, может найти пару тысяч в месяц на сервак с парой ТБ на борту

иначе зачем оно все нужно?

Admin
ERROR: S client not available

Kirill
17.07.2018
17:31:20
дык я и говорю

берешь диски

хранишь на них данные

профит

Aleksandr
17.07.2018
17:31:42
угу

а он говорит 200 гб дорого

ну я тоггда не знаю

Kirill
17.07.2018
17:32:07
берешь диски
если вы отсылку поняли, конечно :)

Aleksandr
17.07.2018
17:32:15
я нет)

Человек
17.07.2018
17:32:53
мне представляется, что человек с тысячами ботов на руках, может найти пару тысяч в месяц на сервак с парой ТБ на борту
да я примерно замахнулся)) судя по ответу понял что нужна БД как бы я этого не хотел)

Kirill
17.07.2018
17:33:30
я нет)
Дуров сто лет назад после доклада отвечает на вопрос: — Как вы храните фотографии? — На дисках а потом появилась kdb, стало ясно, что вообще никто не шутил тогда

Daniel
17.07.2018
17:36:33
они не парятся продалбывать данные

сдох диск - да и хер с ним

Den
17.07.2018
17:36:57
есть структура, к которой обращаются из разных горутин. есть сеттер, который принимает данные для добавления в эту стрктуру. в аргументах сеттера НУЖНО принимать значения, а не указатели? иначе если я буду принимать указатели, то за этой функцией кто то может изменить значение по адресу и тогда все поедет логика правильная или я что то не догоняю?

Google
Den
17.07.2018
17:37:30
внутри стркутруы они юзаются

Daniel
17.07.2018
17:37:32
не, дело не в мьютексах

да, в структуру надо складывать копии

а принимать можно что понравится

Человек
17.07.2018
17:38:13
По емейлу буду данные скидывать

Den
17.07.2018
17:38:56
т.е. если после того как сеттер отработает, из вне сеттера кто то поменяет значение по адресу то мьютекс внутри структуры не спасет. и тогда я хз че будет. че будет?

Человек
17.07.2018
17:39:35
wut
gmail foreva

Kirill
17.07.2018
17:40:31
слов у меня нет

Drul_cyka
17.07.2018
17:44:32
Как установить MaxRequestBodySize в gramework? В чистом fasthttp, я ставил это в fasthttp.Server, а тут как-то непонятно.

Aleksandr
17.07.2018
17:48:26
привет
второй раз спрашивает. никакого саппорта не оказываешь

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