Size: a a a

2020 October 08

S

Serj in Go-go!
V L
\n ?)
ага
источник

⌬C

⌬ Richard Cooper in Go-go!
Sergey Prokhorov
ну за минуту вон что нагуглилось:
https://github.com/leanovate/gopter
https://github.com/flyingmutant/rapid
вопрос такой: если ты писал энкодер-декодер, эти наработки есть где-то в опенсурсе? ими можно воспользоваться?
источник

ВС

Владимир Столяров... in Go-go!
Serj
нет. у меня чтение было через os.Pipe(), далее через exec.Command(file)
чтение было из стд вывода другой программы, а в ней уже был вывод через Println, т.е. 10 - это перенос строки.
спасибо за наводящий вопрос)
А, забавно) даже не подумал проверить что это за символ))
источник

АГ

Алексей Гуркин... in Go-go!
Mr Ash
блин спасибо большое, максимально понятно стало, еще почитаю и точно буду разбираться, уже второй день практикуюсь
Вам не правильно написали.
A slice is formed by specifying two indices, a low and high bound, separated by a colon:

a[low : high]
This selects a half-open range which includes the first element, but excludes the last one.

Поэтому когда вы делаете [0:2] получаете слайс с нулевого элемента по второй, но не включая его. Отсюда в вашем примере и [1,2]
источник

SP

Sergey Prokhorov in Go-go!
⌬ Richard Cooper
вопрос такой: если ты писал энкодер-декодер, эти наработки есть где-то в опенсурсе? ими можно воспользоваться?
Можно то оно можно, но я на Erlang пишу. Не на Go
источник

⌬C

⌬ Richard Cooper in Go-go!
Sergey Prokhorov
Можно то оно можно, но я на Erlang пишу. Не на Go
да мне понять сам процесс декодирования
источник

⌬C

⌬ Richard Cooper in Go-go!
сравнить реализацию хотя бы
источник

SP

Sergey Prokhorov in Go-go!
источник

SP

Sergey Prokhorov in Go-go!
Ну и все prop_mtp_* файлы в той же директории
источник

SP

Sergey Prokhorov in Go-go!
Ну и как бы, с тем же успехом с которым ты можешь попросить фреймворк сгенерировать рандомный бинарь, ты можешь его попросить сгенерировать любой другой объект. Оно по сути как шаблонизатор - ты ему на вход правила по которым генерировать, а он на выход - бесконечный набор примеров
источник

MA

Marlik Almighty in Go-go!
⌬ Richard Cooper
то есть в итоге:
правильно бы написать кучу перекучу тестов в разных вариациях, раскидать их по файликам в папку типа references (а как стати можно назвать директорию с тест кейсами вот еще интересный вопрос), и написать большой тест, который будет сам определять где ошибка? ну типа, если я правильно понима, то так.

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

и кстати, разве рандом в тестах хорошо?
Ну если следовать практикам TDD, то сначала пишут тесты а потом код. 😁
источник

⌬C

⌬ Richard Cooper in Go-go!
Marlik Almighty
Ну если следовать практикам TDD, то сначала пишут тесты а потом код. 😁
чтоб написать тесты надо сначала понять че мы тестируем))) а тут непонятно, телеграм просто плюется байтами, и поди разбери че он имел в виду
источник

MA

Marlik Almighty in Go-go!
А байты нельзя конвертить в строки и в логи пхать? По крайней мере можно понять что и где случилось.
источник

@

@mr_tron in Go-go!
Marlik Almighty
А байты нельзя конвертить в строки и в логи пхать? По крайней мере можно понять что и где случилось.
ну вот собственно такой же вопрос. типа если ошибка парсинга, то функция, вызвавшая функцию парсинга должа срать блоб в хексе или base64 в лог.
источник

@

@mr_tron in Go-go!
а падать не должно на любых данных даже взятых из /dev/random
источник

⌬C

⌬ Richard Cooper in Go-go!
Marlik Almighty
А байты нельзя конвертить в строки и в логи пхать? По крайней мере можно понять что и где случилось.
можно, но блобы будут ультра большими (>2kb, легко ли 2 килобайта в голове сконвертить?) + декодирование очень зависит от контекста.

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

⌬C

⌬ Richard Cooper in Go-go!
да, полезно, но текущая проблема останется нерешенной как мне кажется.


короче ладно, попробую руками сейчас задебажить через принтлн)
источник

V

VRacer in Go-go!
https://play.golang.org/p/sb76kDmxqTC
—————————
Подскажите пожалуйста как прервать выполнение функции 3, так чтобы цикл из main прервался и вывел good?
Большое спасибо заранее😊
источник

⌬C

⌬ Richard Cooper in Go-go!
VRacer
https://play.golang.org/p/sb76kDmxqTC
—————————
Подскажите пожалуйста как прервать выполнение функции 3, так чтобы цикл из main прервался и вывел good?
Большое спасибо заранее😊
ох ё, а это как вообще
источник

⌬C

⌬ Richard Cooper in Go-go!
ну break использовать наверное. он всегда будет выходить с кодом 1 просто
источник