@gogolang

Страница 1458 из 1630
Google
Александр
25.09.2018
19:40:21
так ...

а причем тут unix domain?

dimcha
25.09.2018
19:40:38
пишу тулзу, которая отлавливает эвенты в lxd

dimcha
25.09.2018
19:41:29
а причем тут unix domain?
потому-что локально тулза запускается и без аутентификации цепляется к демону по unix://

нет смысла tcp:// использовать

Aleksandr
25.09.2018
19:42:02
демон и домен же разные вещи? ну так, к слову

dimcha
25.09.2018
19:42:28
там придется сертификаты цеплать и пр. геммор

Александр
25.09.2018
19:43:06
там придется сертификаты цеплать и пр. геммор
и вы полезли переписывать клиент целиком?

гениальное решение коллега

dimcha
25.09.2018
19:43:31
какой клиент? )

Aleksandr
25.09.2018
19:43:36
гениальное решение коллега
он никуда не полез. он показал тебе код - там кода 30 строк

Google
dimcha
25.09.2018
19:43:45
Сударь, гляньте код выше

Александр
25.09.2018
19:43:56
я глянул

dimcha
25.09.2018
19:44:10
и почитайте про unix sockets

Александр
25.09.2018
19:44:28
вы же понимаете что 20 строчками не обойдетесь?

dimcha
25.09.2018
19:44:40
в коде заменить "unix" на "http" и все

я бегаю по tcp

только вопрос не в этом

а в ожидании данных на Read()

Aleksandr
25.09.2018
19:45:23
а в ожидании данных на Read()
ты же уже получил ответ

dimcha
25.09.2018
19:45:36
где?

Aleksandr
25.09.2018
19:45:49
а как узнать что там 0 байт, не попытавшись вычитать?

у него религиозный вопрос

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

нельзя узнать что байт нет не прочитав их

dimcha
25.09.2018
19:46:21
почему религиозный?

можно )))

так select, epoll, kqueue работают )

Aleksandr
25.09.2018
19:46:42
нельзя остановить луп до тезх пор пока не появятся байты, если этого кто-то не прочитал в лупе со стороны

dimcha
25.09.2018
19:46:56
только вот я не знаю, как это протащили в go

Daniel
25.09.2018
19:47:03
да
коллега, у этого Conn Read() вернет n==0 только если произойдет ошибка. например - случится deadline если он у вас возвращает n==0 - вы что-то не так делаете

Google
dimcha
25.09.2018
19:47:30
вооот.. теперь осталось понять ЧТО

Daniel
25.09.2018
19:47:44
err не проверяете?

dimcha
25.09.2018
19:48:05
проверяю, в коде выше проверяю.

а какой тайный смысл дедлайнов?

может это то, что мне нужно?

Daniel
25.09.2018
19:49:22
коллега, а что вы хотели сказать вот этим? ws.conn.Read(buf[:])

зачем вы передаете в Read новый слайс?

dimcha
25.09.2018
19:49:38
это копипаста )

я из офф примера от гориллы менял

Aleksandr
25.09.2018
19:50:46
а как луп может не остановиться, если n = 0? https://gist.github.com/kandeshvari/3ff7d5f517d72c0035308b17966d1fa7#file-wsreader-go-L39

dimcha
25.09.2018
19:51:22
https://gist.github.com/kandeshvari/3ff7d5f517d72c0035308b17966d1fa7#file-wsreader-go-L39 вот если сюда ввернуть маленький time.Sleep(), то будет почти то что нужно. Но это неправильный подход

Daniel
25.09.2018
19:51:58
коллега, вы бы разобрались в собственном коде, а?

dimcha
25.09.2018
19:52:06
а как луп может не остановиться, если n = 0? https://gist.github.com/kandeshvari/3ff7d5f517d72c0035308b17966d1fa7#file-wsreader-go-L39
я вообще не понимаю, почему при отсутствии данных передается управление.

Eugenii
25.09.2018
19:52:19
ООП и модульность друг другу не помеха
нет конечно. Разделяй и влавствуй, придумали еще римляне я к тому, что на любом витке спирали, есть идеал к которому общепринято стремиться и который в разной степени не достижим. но в большинстве случаев, пишут то человеки. я бы даже сказал шалапаи. и пофиг пишут монолит или микросервисы или какие нибудь биологические соты

dimcha
25.09.2018
19:53:04
коллега, вы бы разобрались в собственном коде, а?
я разобрался, в меру своих знаний. Если там есть очевидные косяки - подскажите где они )

я что-то не проверяю?

Daniel
25.09.2018
19:53:35
тогда откуда n == 0 ?
разберитесь в своем коде

на простой вопрос - зачем вы новый слайс создаете - вы ответить не можете

Google
Daniel
25.09.2018
19:54:14
откуда мне знать, что у вас там еще накручено

Александр
25.09.2018
19:54:25
а Accept там не надо случаем?

Daniel
25.09.2018
19:54:50
Read() у net.Conn блокирующий - это точно.

dimcha
25.09.2018
19:54:52
нет, это к принятию коннекшена относится

тогда значит я совершил невозможное )

если Read() возвращает 0, значит он не ориентируется на данные в потоке, а как-то иначе этот поток обрабатывает

вопрос - как

Александр
25.09.2018
20:05:37
а попробуйте byt, _:= ioutil.ReadAll(conn)

Admin
ERROR: S client not available

dimcha
25.09.2018
20:07:53
не получится. ioutil.ReadAll ждет io.EOF

а в моем случае он не прилетает, т.к. поток не закрывается

Nyan
25.09.2018
20:10:25
а в моем случае он не прилетает, т.к. поток не закрывается
а в вашем случае вы читаете по 16 байт, но всё равно ждёте eof, в чём разница?

Pawel
25.09.2018
20:14:59
почему не нужен?
суть активрекорд - хранить методы работы с БД в самом объекте, полученном из БД. Это противоречит solid, а именно - spr, а потому считается говнокодом. И правильно считается.

Pawel
25.09.2018
20:16:35
я пришел узнать кто что использует
хочешь орм - используй reform, больше ничего приемлегого нет

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

Zaur
25.09.2018
20:24:34
Если у тебя есть таблица ошибок, в соответствии с которой надо возвращать в апи ошибки, нужно создать пакет со структурами ошибок из таблицы с поддержкой интерфейса error, а саму ошибку в коде оборочивать в соответствующую структуру, с помощью пакета errors добавить весь стэк получившихся ошибок, а потом, при выдаче ответа, проверять через switch соответствие корневой ошибки какой-то структуре, так определять тип ошибки, а стэк ошибок из errors выводить в лог. Это нормальная схема?

Oleg
25.09.2018
20:28:19
Pawel
25.09.2018
20:30:23
думаю никто ничего. я лично навскидку не помню есть ли вообще ar на го
я подобное часто вижу в чужом коде type BusinessLogic struct { conn *sql.Conn BusinessValue BusinessValueType }

Maksim
25.09.2018
20:30:26
SRP это религия со множеством оттенков и такое шельмование может быть весьма спорным.
лучше не надо за паттерны с ним разговаривать) он живёт в своём мире, не уважает фаулера и боба и в целом бесполезно.

Google
Pawel
25.09.2018
20:31:49
ну вот и что это за личный выпад?
религиозные убеждения задеты

Maksim
25.09.2018
20:31:56
ну вот и что это за личный выпад?
его же слова :) ничего личного, только бизнесс (с)

Dk
25.09.2018
22:43:02
Я что-то запутался. Можно в Go создать структуру, в ней определить поле и доступ к этому полю осуществлять никак иначе как через методы?

type Person struct { Login string password string Username string } Вот допустим. Как мне обезопасить password от прямого вмешательства?

Александр
25.09.2018
22:45:48
(они станут приватными)

и делаешь методы структуры под каждое поле

можешь и имя структуры с маленькой сделать, тогда ее инициализация возможна только через возрат из функции

Fastumkruk ✅
25.09.2018
22:48:21
Александр
25.09.2018
22:48:29
конечно

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

будь то название функции, имя типа, структура, имя поля

переменная..

Dk
25.09.2018
22:49:28
да, все имена полей с маленькой буквы
Аэ, запутался сейчас покажу почему







Показывает passwor2 же

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