Ильдар
p := bytes.Repeat([]byte("1"), 1024) r := bytes.NewReader(p) и потом в цикле: io.Copy(ioutil.Discard, r)
Ильдар
По идее, при изменении 1024 на бОльшее значение, количество циклов в ограниченный отрезок времени должно уменьшаться, так как на запись уходит дольше времени...
Ильдар
Но этого не происходит.
Ильдар
Пробовал 1024 (1 килобайт) увеличить до 1000 мегабайт даже.
Ильдар
При любом раскладе у меня получается 37 399 239 циклов в секунду, что соответствует 35 Гигабайтам данных в секунду, чего на DDR3 быть не может.
Ильдар
При записи, причём, всё в порядке. При увеличении объёма 1 записываемого блока через buf.Write() число циклов пропорционально снижается.
Ильдар
Всё, понял... туплю я.
Anonymous
Всё, понял... туплю я.
И в чём секрет?
Ильдар
io.Copy(ioutil.Discard, r) дважды не выполняется. Он доходит до конца r и всё.
Anonymous
А как ГО на ФрииБСД себя чувствует? FreeBSD 8.2-RELEASE $ go version go version go1.10 freebsd/386 $ go run hello.go go tool compile: pipe: function not implemented гуглил, ни чего не нагуглил.
Vladimir
кажется последний го умевший 8куэ то что-то типа 1.8
Anonymous
то есть на 8.2 вариантов нет?
Vladimir
обновится :D
Anonymous
Как можно принудительно вызвать ошибку?
Anonymous
свой текст туда вписать
Vladimir
то есть на 8.2 вариантов нет?
https://golang.org/doc/go1.9#freebsd
Anonymous
panic("foo")
мне надо ошибку из функции вернуть
Vladimir
они сказали что апстрим поддерживает тока 10ку, значит нет смысла поддерживать устаревшие фекалии мамонта
Vladimir
и дропнули 8ку в 1.9, а 9-ку в 1.10
Vladimir
впрочем они правы )
Vladimir
нафиг сидеть на неподдерживаемом
Vladislav
мне надо ошибку из функции вернуть
error - это интерфейс с методом Error()string
Илья
Очень ленивые админы, FreeBSD 8.2 уже в 2012 считалась устаревшей
Vladimir
мне надо ошибку из функции вернуть
errors.New("text") или fmt.Errorf("something went wrong: %v", someVariable)
🏁Александр
я вот думаю, хост возращает в случаи ошибки совсем другой json
🏁Александр
как бы это кошерно оформить...
🏁Александр
причем ни статуса ничего
🏁Александр
два раза онмаршалить в разные форматы?
🏁Александр
вообще не тащит как то схемка
Илья
я вот думаю, хост возращает в случаи ошибки совсем другой json
Или 2 раза анмаршалить или проверять http код ответа сервера
🏁Александр
нету там кода ответа 🙁
🏁Александр
писали какие то нехорошие люди
Илья
Можно ещё сделать составную структуру из ошибки и ответа и метод isError()
🏁Александр
тоже не совсем красивое решение то
Aleksandr
нету там кода ответа 🙁
проверять по какому-то паттерну, потом решать какую структуру юзать. типа если 5 байт такой-то то одно, если нет - другое
🏁Александр
да это то понятно, но вам не кажется все костыльное? 🙁
Vladislav
Какое апи такое и решение.
Aleksandr
не дури. если у тебя такое апи, то другого решения быть не может
🏁Александр
ну ладно 🙁
Мерль
мне надо ошибку из функции вернуть
создай переменную типа var ( ErrSomething = errors.New("сообщение об ошибке") )
Мерль
причем ни статуса ничего
он не отправляет http status? Это как?
Aleksandr
он не отправляет http status? Это как?
не меняет статус в смысле с 200
🏁Александр
да, всегда 200
Мерль
не меняет статус в смысле с 200
тогда только использовать для десериализации что-то типа type struct { *OKresponse *ErrorResponse }
Michael
для реста ж тру юзать респонз коды
🏁Александр
для реста ж тру юзать респонз коды
ага еще мир во всем мире и коммунизм 🙂
Michael
ага стройная архитектура костыль ад хок программинг
🏁Александр
не мой рест, я его не контролирую
Aleksandr
для реста ж тру юзать респонз коды
но никто не говорил слово "рест"
Michael
но никто не говорил слово "рест"
та и об архитектуре никто не говорил
Мерль
для реста ж тру юзать респонз коды
ето если сервер следует стандартам
Michael
всё по старинке через знакомое место
Aleksandr
та и об архитектуре никто не говорил
именно. говорили только о десериализации
🏁Александр
понаберут студентов по объявлениею, потом страдаем
Michael
what is love? baby do not hurt me... no more
Pawel
в смысле там это уже сделано
Васильев Виктор
Это на машине которая сама протестует сама заберёт из репы, сама сбилдит и сама автоматизирует деплой. Это для проектов которые чуть побольше
Васильев Виктор
Пфффф, ахренеть аргумент. Го не нужны либы, у него его окружение это свой бинарник.
Alexander
Котаны, вопрос наверно баян, но повторение - мать учения ) Куда кладете тесты? в отдельный пакет или в пакет с кодом?
Alexander
клал, пока не прострелил себе ногу
Pawel
Будь мужыком - говори ложить Чем ты хуже Маяковского? Я ложу в пакет с кодом, а @onokonem - в отдельный пакет, потому что он против тестирования приватных функции, а я - за
Pawel
он против тестирования не потому, что кладет в отдельный пакет
если не тестить закрытые функции, то я бы тоже наверное делал отдельный тестовый пакет
Васильев Виктор
ну делаем как и в стандартной либе) Кладем туда же где и код :)
Васильев Виктор
удобно это и приватные плюшки
Nikita
Котаны, вопрос наверно баян, но повторение - мать учения ) Куда кладете тесты? в отдельный пакет или в пакет с кодом?
Я пробовал так и так. Для библиотек можно класть все в один пакет. Для приложения я предпочитаю все выносить отдельно
heavycharged
sql.Stmt захватывает соединение?
heavycharged
спс
.
Нормальная ли такая струкутра приложения?
.
(Рисовал как мог)