
Roman
20.04.2018
16:12:46
или go test --help
там много всего

Roman
20.04.2018
16:17:07

Google

Artem
20.04.2018
16:18:10
ну вот недавно (1.10) кэши добавили: это из чего пришло в голову первым

Roman
20.04.2018
16:19:02
единственное что действительно незаменимо так это профайлинг и coverage

Zerogoki
20.04.2018
16:33:40
Какой ThreadPool посоветуете юзать? На гитхабе полно либ
https://github.com/Jeffail/tunny
https://github.com/pbenner/threadpool
https://github.com/shettyh/threadpool

FRD Official - Dmitriy
20.04.2018
16:39:06
я уже писал выше
Я тоже писал. Ты хоть абстрактный код бы показал, а то "нее - под наши задачи...", какие задачи? Что именно делаете? Бомбы атомные? Да я что-то сомневаюсь. Что там у вас тестами не покрывается? В чем сложность их написания? А то знаешь это как нытье про "у меня проблемы с женой" , все что-то советуют, распинаются, а потом ТС заявляет - "я ее никак найти не могу"

Roman
20.04.2018
16:40:16
ладно, тема пока-что закрыта

Zerogoki
20.04.2018
16:41:28
Вот есть слайс из строк (айпишники), я их передаю функции, которая делает некие операции с сетью, после чего возвращает структуру. Этих строк несколько тысяч, поэтому надо распараллелить

Andrii
20.04.2018
16:42:19
Что можете сказать про gorm стоит ли юзать или чтото другое использивать?

FRD Official - Dmitriy
20.04.2018
16:43:30

Roman
20.04.2018
16:43:50

Andrii
20.04.2018
16:43:55
Окей, спасибо)

Google

Zerogoki
20.04.2018
16:44:21
Чтобы не больше ста разом крутились, допустим

Roman
20.04.2018
16:44:38

FRD Official - Dmitriy
20.04.2018
16:46:22
не понимаю о чём ты, всё уже выше было описано
Нет, там было про "бефоре-афтер", картинка, которая говорит ниочём и много страданий. Было конструктивное предложение, повторюсь, давай возьмем гипотетическую ситуацию, опишем её тестами, ну где тут проблемы тестирования в Go, я в упор не вижу.

Zerogoki
20.04.2018
16:46:25
А канал — это что-то типо массива?
Который можно делить между процессами
Чтобы не мешали друг другу при записи туда

FRD Official - Dmitriy
20.04.2018
16:47:24
Ты из какого языка пришел?

Zerogoki
20.04.2018
16:47:29
Питончик

FRD Official - Dmitriy
20.04.2018
16:48:37
Ну да, что-то вроде массива, с одной стороны в него пишут, с другой читают, еще это называют pipe

Roman
20.04.2018
16:49:58

Zerogoki
20.04.2018
16:51:30
Я читаю входные данные, потом циклом горутины запускаю, а там уже конец кода
А при её запуске же программа дальше выполняется

FRD Official - Dmitriy
20.04.2018
16:52:11
Это очередь

Roman
20.04.2018
16:52:41

FRD Official - Dmitriy
20.04.2018
16:54:58

Zerogoki
20.04.2018
16:56:52
Чот не понял, когда runtime error: invalid memory address or nil pointer dereference возникает?

Google

Zerogoki
20.04.2018
16:57:04
Ещё аж с segfault крашится
Без горутин работало нормально, а как их прикрутил — вот такое

Roman
20.04.2018
16:58:30

Nick
20.04.2018
16:58:31
Обращение к участкам памяти общим в разных корутинах есть?

Zerogoki
20.04.2018
16:59:26
Есть обращение к структуре
код фстудию
Он там длинный, непонятно что именно показывать

Roman
20.04.2018
16:59:55

Zerogoki
20.04.2018
16:59:59
Крашится на строке, когда я в сокет посылаю данные

Roman
20.04.2018
17:00:18
где-то читаешь из несуществующей памяти

Nick
20.04.2018
17:00:26
Обращение к участку памяти, который ещё не записался в память и отсутствует к кэше ядра?

Zerogoki
20.04.2018
17:03:39
Вот участок проблемный
binLogin := bytesBuf.Bytes()
fmt.Printf("% x\n", binLogin)
d.sock.Write(binLogin)
В binLogin байты, которые я на сервер посылаю. Думал, что проблемы с этой переменной, но она печается, а при попытке записать в сокет — краш

Nick
20.04.2018
17:04:56
А что такое d

Zerogoki
20.04.2018
17:05:35
Это указатель на структуру
типо вот
func (d *Dahua) Init() {
}

Nick
20.04.2018
17:06:00
Как ты там инициализируешь sock

Zerogoki
20.04.2018
17:07:16
Типо так
func New(ip string, port uint16, user string, pw string) Dahua {
addressString := fmt.Sprintf("%s:%d", ip, port)
conn, err := net.DialTimeout("tcp", addressString, time.Duration(TimeOut) * time.Second)
d := Dahua{ip, port, user, pw, "", conn, err, 127}
return d
}
А вот структура
type Dahua struct {
ip string
port uint16
user string
password string
serial string
sock net.Conn
err error
status int8
}
А, я понял, походу
У меня в поле sock как-то nil оказался

Andrii
20.04.2018
17:09:27
db.AutoMigrate(&Resource{})
за что отвечает в даной строке Resource ?

Google

Andrii
20.04.2018
17:09:51
ето назва бд?

Nick
20.04.2018
17:12:30

Zerogoki
20.04.2018
17:13:30
А, всё
Это я немного идиот

FRD Official - Dmitriy
20.04.2018
17:13:41

Zerogoki
20.04.2018
17:13:42
Я забыл проверку сделать на ошибку соединения
Если его не удалось установить, то там nil и будет

Admin
ERROR: S client not available

Zerogoki
20.04.2018
17:14:05
Точнее, не забыл, а просто return забыл поставить

FRD Official - Dmitriy
20.04.2018
17:14:16

Алекс
20.04.2018
17:17:32
https://habrahabr.ru/company/mailru/blog/353790/

FRD Official - Dmitriy
20.04.2018
17:22:23
О еще один хабродятел перевел статью, которую все прочитали неделю назад... ну да, актуальненько...

Nick
20.04.2018
17:27:11

FRD Official - Dmitriy
20.04.2018
17:29:49

Dmitry
20.04.2018
17:34:46

FRD Official - Dmitriy
20.04.2018
17:43:03

Dmitry
20.04.2018
17:46:08

FRD Official - Dmitriy
20.04.2018
17:49:19
Вопрос, что такое хабр? - ответ место для пиара местячковых выкидышией от от компании "русзаемнаёб", которые нальют воды на пустом месте и ничего не расскажут, переводчиков "а#уительных статей", которые никому уже не интересны. И мальчиков, которые пытаются добиться их расположения, думая что это показатель

Dmitry
20.04.2018
17:50:48
Не, вопросов больше не имею

Google

FRD Official - Dmitriy
20.04.2018
17:53:21

Dmitry
20.04.2018
17:54:08
Жаль
я бы поучаствовал в сраче , но нужно прочитать парочку статей :)

FRD Official - Dmitriy
20.04.2018
17:57:24

Zerogoki
20.04.2018
18:00:11
Что-то у меня wg.Wait() бесконечно ждет
Я в функции даже принт перед самым return поставил, чтобы удостовериться, что она действительно завершается
Пока одну только горутину запускаю
А, хотя не
Зависает на строчке, когда я в канал пишу

FRD Official - Dmitriy
20.04.2018
18:09:26
из канала кто-то должен прочитать

Zerogoki
20.04.2018
18:18:23
Теперь функция завершается, но wait ждёт бесконечно
results := make(chan dahua_controller.Dahua)
var wg sync.WaitGroup
wg.Add(1)
go ProcessHost(ipList[0], results)
<- results
wg.Wait()

Yury
20.04.2018
18:25:14
Wait будет ждать пока у тебя счетчик в wg в ноль не уйдет, нужно wg.Done() вызывать где-то

Zerogoki
20.04.2018
19:21:29
Что этот счётчик уменьшает?
А, понял
wg.Done() и уменьшает
А если горутина ничего не записала в канал, то при попытке чтения оттуда будет блокировка до появления там данных?

Vadim
20.04.2018
19:34:01
Будет слушать как бесконечный цикл
Я сам с питона в го пришел