@proGO

Страница 1206 из 1674
Subbotin
05.02.2018
15:19:17
или надо писать самому?

Daniel
05.02.2018
15:20:01
есть такая которая вернет ошибку, или слайс и флаг "там еще осталось"

Google
Subbotin
05.02.2018
15:26:19
и там же LimitedReader
лимит ридер молча возвращает обрезанный body

The
05.02.2018
15:27:24
ReadFull?

хотя не, ReadFull не решает

Subbotin
05.02.2018
15:30:48
io.ReadAtLeast ?
ну если у меня боди пришло 100 байт, а лимит у меня в гигабайт то он кинет ошибку

Daniel
05.02.2018
15:31:18
нет

ща, найду

так это

https://golang.org/pkg/bufio/#Reader.Read

но позвать придется дважды

Nikolay
05.02.2018
15:33:49
Есть ли способ отдать память обратно ОС?

The
05.02.2018
15:36:49
но позвать придется дважды
Зачем дважды? как-то так https://play.golang.org/p/IsZtqI5SJ2c

Subbotin
05.02.2018
15:36:57
https://golang.org/pkg/bufio/#Reader.Read
Ну так мне придется тогда на каждый запрос выделять буфер сразу максимального размера.

Google
Daniel
05.02.2018
15:37:29
конечно

Subbotin
05.02.2018
15:38:03
У меня большинство запросов мелкие, но могут иногда быть и на 100 метров

Daniel
05.02.2018
15:38:10
Зачем дважды? как-то так https://play.golang.org/p/IsZtqI5SJ2c
первый вызов не вернет ошибку.

The
05.02.2018
15:38:52
первый вызов не вернет ошибку.
ну так если io.EOF не достигнуто, значит ответ уже больше чем len(), и значит нам не надо :)

Daniel
05.02.2018
15:39:26
первый вызов не вернет ошибку даже если n не достигнуто

Subbotin
05.02.2018
15:40:39
впрочем я уже нашёл готовую мидлварю для echo

Daniel
05.02.2018
15:41:17
а что там внури?

чтение мелкими порциями?

Subbotin
05.02.2018
15:48:13
угу

tsov
05.02.2018
15:49:27
а у меня dep глючил на подтягивании coreos/bbolt вместо исходного boltdb. т.е. сначала был пакет по одному источнику а потом стал по другому, и тут его накрыло, что пришлось сносить vendor. давно это было и уже может неправда

The
05.02.2018
15:50:04
https://play.golang.org/p/ZAj8onaNJid вот чтение частями из resp.Body с использованием буфера который ростет по мере чтения.

но слабо себе представляю тело размером в 1ГБ.

если конечно это не файлокачалка какая-то

Subbotin
05.02.2018
15:51:50
это файлозакачка

Mykyta
05.02.2018
15:52:26
https://play.golang.org/p/ZAj8onaNJid вот чтение частями из resp.Body с использованием буфера который ростет по мере чтения.
По поводу кода есть замечания, правильно сделать структуру, которая реализует интерфейс io.ReaderFrom

The
05.02.2018
15:53:24
Можно узнать, почему так правильнее?

Mykyta
05.02.2018
15:54:44
Можно узнать, почему так правильнее?
Потому, что тогда ты можешь использовать стандартный пакет io не изобретая велосипед

The
05.02.2018
15:56:13
Потому, что тогда ты можешь использовать стандартный пакет io не изобретая велосипед
спасибо. если ты в контексте реального проекта, то да, так будет лучше, но я просто привел концепцию как читать частями и прекратить по достижению максимума.

я думал там какие-то нюансы есть о которых я не знаю

Phil
05.02.2018
19:49:01
Угу. Готово

Google
Olzhas
05.02.2018
19:49:58
Запилите бота, который будет выдавать банан юзеру, если его первое сообщение с ссылкой

Aleksandr
05.02.2018
19:52:08
Запилите бота, который будет выдавать банан юзеру, если его первое сообщение с ссылкой
"запилите" или "запилю"? советчиков тут полторы тысячи. деятелей нет

Olzhas
05.02.2018
19:53:09
Igor
05.02.2018
20:08:23
только с этим чатом есть проблемка - бота админом может сделать только создатель, а он заходил полтора месяца назад

The
05.02.2018
20:16:55
господа, если запустить прогу *.exe, и закрыть окно, можно ли как-то отловить закрытие? через signal.Notify()?

Alexey
05.02.2018
21:00:10
господа, если запустить прогу *.exe, и закрыть окно, можно ли как-то отловить закрытие? через signal.Notify()?
Через defer в main можно попробовать, главное что бы сам main не вышел заранее

func main() { defer print("the end...") for {} }

The
05.02.2018
21:03:13
надо будет попробовать

Alexey
05.02.2018
21:03:39
Можно и сигналы ловить ещё

Alexey
05.02.2018
21:06:06
Гугль https://gist.github.com/reiki4040/be3705f307d3cd136e85

Alexey
05.02.2018
21:12:02
Тут проще https://gist.github.com/wofeiwo/3582748

https://nathanleclaire.com/blog/2014/08/24/handling-ctrl-c-interrupt-signal-in-golang-programs/ Надо проверить, что винда передаёт на закрытие окна.

The
06.02.2018
01:51:22
Вопрос немного не по теме, но все же... Можно ли в Goland как-то повторить сигнатуру типа функции? Допустим есть type HandlerFunc func(http.ResponseWriter, *http.Request) я пишу Index, нажимаю, например, Alt+Insert, ввожу http.HandlerFu... жмакаю Enter, и функция повторяет сигнатуру? Знаю есть имплементация интерфейса, а именно на функции такая штука есть?

Dmitry
06.02.2018
06:56:32
+

Phil
06.02.2018
07:00:30
Удалил, забанил

Admin
ERROR: S client not available

Леша
06.02.2018
11:50:23
что можете сказать о фреимворке echo?

Александр
06.02.2018
11:56:07
не go way

Google
Леша
06.02.2018
12:01:14
а go way - это без фреимворков?

Александр
06.02.2018
12:01:28
да

Alexei
06.02.2018
12:03:15
что можете сказать о фреимворке echo?
да отличный фреймворк, многое уже есть, работает нормально, но если высокие нагрузки, то лучше смотреть в сторону fasthttp или нечто подобного

или этот https://github.com/gramework/gramework

Ilya
06.02.2018
12:04:56
а go way - это без фреимворков?
Достаточно будет взять какой-нибудь роутер типа chi

Alexei
06.02.2018
12:11:44
возможно, от задач зависит, надо "шашечки или ехать" ))))))

Kirill
06.02.2018
12:13:37
fasthttp не умеет http2, вроде. А большинство браузеров его уже поддерживают.
если сильно захотеть, то взлетит и хттп2, но официальной поддержки нет плюс - http2 сами разработчики не умеют юзать, хром на какое-то время его выпиливали и т.д. тут или решаешь проблему, или не решаешь проблему. если решаешь, то можно взять шустрый фреймворк и поставить перед кластером ELB

Olzhas
06.02.2018
12:14:44
Или ставишь nginx на фронтенд

Kirill
06.02.2018
12:15:10
http2 для api серверов не упал вообще

Леша
06.02.2018
12:37:44
Michael
06.02.2018
12:51:44
fasthttp не умеет http2, вроде. А большинство браузеров его уже поддерживают.
там по хттп2 https://blog.golang.org/h2push, для вебморд самое то, с чем nginx и справится

Marlik
06.02.2018
12:57:02
Интересно, спасибо.

Den
06.02.2018
12:58:15
Кто нибудь CEF под го использовал?

Marlik
06.02.2018
13:14:07
Чот ни разу не встречал, как выйти из программы, что-то типа exit() есть в го?

Sergey
06.02.2018
13:14:37
os.Exit(1)

Michael
06.02.2018
13:15:23
а насколько часто надо выходить таким способом?

Sergey
06.02.2018
13:16:07
а насколько часто надо выходить таким способом?
что-то пошло настолько не так, что дальше уже и не надо. так-то log.Fatalf() наше всё.

Mykyta
06.02.2018
13:26:08
а насколько часто надо выходить таким способом?
Обычно никогда, и делать только из функции main, и только когда тебе реально надо вернуть код возврата, типа если ты делаешь утилиту командной строки. лог-фатал вызывает os.Exit

Michael
06.02.2018
13:28:02
я хз, но мне нравится fail fast & panic

Google
Marlik
06.02.2018
13:41:34
Не, мне просто в ините надо проверить конфиг, если его нет, не запускать аппу. Спасибо.

Александр
06.02.2018
14:14:05
я тут перепроектирую свою надстройку, вопрос несколько по архитектуре

вы считаете что модель хранит и работает только с конкретной записью, остальное все через надстройку (создание/поиск) или же последнее это часть методов модели

многие орм мешают конечно все в кучу

Страница 1206 из 1674