@gogolang

Страница 1318 из 1630
Roman
28.08.2018
13:53:50
чем помогут интерфейсы в проблеме обязательности установки полей?
тем что ты не экспортируешь тип имплементации из пакета а только сам интерфейс и конструктор функцию. Это предотращает возможность нежеланного мутирования объекта или его инициализацию вне конструктора

Igor
28.08.2018
13:54:18
Всмысле делать публичной?
с большой буковки

Alexey
28.08.2018
13:55:19
с большой буковки
Та эт понятно) Типо смириться с тем что можно будет создать объект и не указать в него нужные параметры?

Google
Alexey
28.08.2018
13:56:04
Ну ни кто не обещал что будет легко)

Спасибо) Бедем крутиться)

V
28.08.2018
13:57:26
вроде как возвращать интерфейсы-то не комильфо

Abdulla
28.08.2018
13:57:48
Возвращать интерфейсы?

Откуда?

V
28.08.2018
13:58:36
выше советы про экспорт только интерфейса

Abdulla
28.08.2018
13:59:27
Экспортить интерфейс это единственный нормальный вариант

V
28.08.2018
14:00:35
accept interafces, return struct

Abdulla
28.08.2018
14:01:28
Когда ты экспортируешь интерфейс - ты объявляешь контракт - принимаешь интерфейс

Lesha
28.08.2018
14:01:53
Никто в fasthttp не получал ошибку like: Temporary error when accepting new connections: accept tcp4 0.0.0.0:3230: accept4: too many open files

Roman
28.08.2018
14:02:14
Lesha
28.08.2018
14:02:18
периодически возникает и уже не знаю че делать. лимиты все супер поднял

Google
Daniel
28.08.2018
14:02:43
а ulimit вы покрутили?

Lesha
28.08.2018
14:03:09
~$ ulimit unlimited

Daniel
28.08.2018
14:03:21
ваши аргументы, Сэр?
трудно сравнивать возврат с nil

~$ ulimit unlimited
ulimit -a, если самому лень голову включить

Lesha
28.08.2018
14:04:08
~$ cat /proc/sys/fs/file-max 3271666 ~$ ulimit -Hn 1000000 ~$ ulimit -Sn 1000000

В /etc/sysctl.conf net.core.somaxconn = 65535 net.core.rmem_default = 65536 net.core.wmem_default = 65536 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 fs.inotify.max_user_watches = 16777216

V
28.08.2018
14:05:42
ваши аргументы, Сэр?
например более простоя навигация, не к интерфейсу, а к конкретному методу ?

Lesha
28.08.2018
14:05:58
nginx показывает в среднем 5-10k req/sec

Roman
28.08.2018
14:06:09
трудно сравнивать возврат с nil
ну nil это конечно проблема да и performance слегка ниже, но это единственный безопасный вариант и я часто это видел. Ибо таки экспортировать struct с приватными полями не позволит устанавливать параметеры, а публичные поля вносят опасность того что пользователь накосячит, не укажет определённые поля и библиотека полетит

Lesha
28.08.2018
14:06:27
но такая ошибка возгникает раз в день-два. хз как такое дебажить(

и помогает перезагрузка приложения только

Michael
28.08.2018
14:12:22
и помогает перезагрузка приложения только
TL;DR а defer есть ли и что там написано?

Lesha
28.08.2018
14:17:35
TL;DR а defer есть ли и что там написано?
defer нету. приложение не завершается. В этот момент занимаем аппликухой память вырастает и приходится релоадить

Michael
28.08.2018
14:22:04
Замыкания есть? Профилировать пробовали?

Roman
28.08.2018
14:29:33
ээмммм, сравнивать интерфейсы же можно?

да, вроде можно: https://play.golang.org/p/xqRhuvowNem

Daniel
28.08.2018
14:50:27
но такая ошибка возгникает раз в день-два. хз как такое дебажить(
или у вас текут дескрипторы, или у вас таки плохо настроены лимиты за количеством дескрипторов можно следить с помощью runtime метрик (я экспортить их можно с помощью прометея) за лимитами можно следить с помощью ulimit

Artem
28.08.2018
15:07:31
понимаю что вопрос странный но нет ли механизма конкатенации json типа как мне на вход пришло json с 5 атрибутами я например его резанул до 3 нужных мне атрибутов потом добавил новых 5 своих и отдал на выход совй json c 8 нужными сейчас получается для каждого json нужно сначала свою структуру делать и еще на запутаться в передаче между ними данных

Google
Daniel
28.08.2018
15:08:03
да

свою и не запутаться

на самом деле - если единственное, что вы делает с json, это конкатенируете его - можно его анмаршалить в interface{}

это приведет к созданию map[string]uinterface{}, и в значениях будут числа и строки

ну или к []map[string]interface{}, если у вас такой json

но делать так для нормальной работы нежелательно

Илья
28.08.2018
15:34:56
на самом деле - если единственное, что вы делает с json, это конкатенируете его - можно его анмаршалить в interface{}
я в таких кейсах топлю за map[string]json.RawMessage, чтобы не трогать значения вообще

Daniel
28.08.2018
15:35:42
а вложенные мапы?

Kirill
28.08.2018
15:48:45
ну или к []map[string]interface{}, если у вас такой json
(или к []string, []int, []bool, []interface{} и другие валидные типы для корня json)

Daniel
28.08.2018
15:49:22
а про fasthttp расскажи нам в соседнем чатике :)

[]int, кстати, невалидный вариант

Илья
28.08.2018
15:49:49
а вложенные мапы?
если мерджат только первый уровень, то why bother :)

Daniel
28.08.2018
15:49:59
[]float64 валидный

Илья
28.08.2018
15:50:02
Kirill
28.08.2018
15:50:10
Daniel
28.08.2018
15:50:17
https://t.me/proGO

Илья
28.08.2018
15:50:46
там же раньше флуд был страшный

Roman
28.08.2018
15:50:50
https://t.me/proGO
а почему у нас их кстати 2? какая-то историческая причина?

Daniel
28.08.2018
15:51:11
историческая, да

Google
Виктор
28.08.2018
15:51:24
там же раньше флуд был страшный
там 1800 человек, тут 1700 и по ощущениям уровень флуда примерно одинаковый

Daniel
28.08.2018
15:51:25
у того, второго, протеялся куда-то создатель

поэтому я все собираюсь написать бота, который переведет всех в ro, и опубликует ссылку на этот чат

но - не собрался пока

Roman
28.08.2018
15:53:26
good to know, значит буду предпочитать эту группу

Daniel
28.08.2018
15:54:31
но бота-то мы туда воткнуть не можем

Aleksandr
28.08.2018
15:56:00
надо через клиентский апи. только что, чтобы не забанили?

Daniel
28.08.2018
15:56:20
угу

Admin
ERROR: S client not available

Kirill
28.08.2018
15:56:31
@toby3d help please

Мерлин
28.08.2018
15:56:42
Maxim
28.08.2018
15:56:45
а, чо

Мерлин
28.08.2018
15:56:46
на го пока нету

Kirill
28.08.2018
15:56:46
нужно соседний чатик пристрелить, чтоб не мучался

Daniel
28.08.2018
15:57:21
нужно от имени админа пройтись по юзерам чатика и проставить всем RO

Aleksandr
28.08.2018
15:58:15
есть биндинги к TDLib у питона
да я вот прям щас гошные биндинги причесываю чтобы в паблик выложить

Maxim
28.08.2018
15:58:28
В Bot API нет возможности получить всех мемберов текущего чата. Нужно чтобы тот проявил хоть какую-то активность, а бот это заметил

Google
Kirill
28.08.2018
15:58:57
в том-то и проблема, что RO бот у меня и так есть

Мерлин
28.08.2018
15:59:04
Kirill
28.08.2018
15:59:07
тут нужна клиентская говнина

Aleksandr
28.08.2018
15:59:22
надо клиентом составить лист юзеров и видимо ботом отсюда приглащшение кинуть. типа того

Maxim
28.08.2018
15:59:26
Не занимался клиентской говниной, сорян. Только боты, логинка и пасспорт

Daniel
28.08.2018
16:02:02
В Bot API нет возможности получить всех мемберов текущего чата. Нужно чтобы тот проявил хоть какую-то активность, а бот это заметил
бот не годидзе - мы не можем ему там админские права дать. нужно через клиентский api заходить

Daniel
28.08.2018
16:02:41
о!

Maxim
28.08.2018
16:03:03
А тот кто будет через клиентские штуки ходить от своего лица может как-то юзерами манипулировать?

Kirill
28.08.2018
16:03:37
должен уметь

клиенты-то умеют

на самом деле, мы могли бы пропатчить клиент tg

и это легко сделать, если в web версии есть нормальная админка

Maxim
28.08.2018
16:04:21
должен уметь
Я про то что отсюда там админы есть? Они могут руками права юзеров трогать?

Maxim
28.08.2018
16:05:25
Нил там админ
Хоть что-то

Тогда да, стучать клиентским API только. Не знаю как по другому можно

Aleksandr
28.08.2018
16:20:52
о!
ну вот например у меня есть 1705 user id

что с этим делать?

Kirill
28.08.2018
16:21:28
не путай чат

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