Sergey
go funcname() не устраивает?
я только начал и в горутины не вникал
Andrey
вот я и спросил у каждой задачи будет своя функция мэйн верно?
в чем задача то? надо сделать так что бы при go run main.go выполнилось 2 разных задачи? или в чем суть?
Anonymous
В gopl задачи расположены так gopl.io/ch1/dup3 Почему бы не сделать тоже самое, в каждом пакете свой main
Sergey
в чем задача то? надо сделать так что бы при go run main.go выполнилось 2 разных задачи? или в чем суть?
допустим прошел главу один решил там задачу и запустил ее потом вторую главу внутри этой папки вторая задача решил ее и тд то есть чтобы по отдельности мог запускать конфликтов не будет никаких?
Daniel
коллега
Daniel
сделайте так
Daniel
cmd/glava001zadacha001/main.go cmd/glava001zadacha002/main.go
Daniel
и будет кошерно и православно
Sergey
cmd/glava001zadacha001/main.go cmd/glava001zadacha002/main.go
вот так и хотел, спасибо большое👍
Andrey
внутри папки куча файлов и в каждом файле своя функция main все будет работать если запускать каждый файл отдельно, вся папка не скомпилится по понятным причинам, ну и некоторые ide будут ругатся на такую структуру
Andrey
но выше уже предложили более православный вариант
Aleksandr
почему не raml?
потому что промышленный стандарт
Aleksandr
как я понял, сваггер 3 перекочевал в openapi инициативу к тому же, котоую форсят сильные мира сего
Anonymous
openapi и есть развитие swagger. кстати, на днях наконец вышла третья версия спецификации. гораздо более удобная
Daniel
я вот так пока и не взял себя в руки, не посмотрел
Daniel
впрочем, мне все равно нужен генератор кода
Kirill
Гнойный победил 😭😭😭
Габоныч подставил, не ожидал от него(
Anonymous
Да и голос белого там не в тему
Anonymous
Но батл шикарен
Kirill
Yup
Daniel
такого написания не видел никогда
Daniel
yeap
Anonymous
Япиии
Anonymous
Anonymous
jAPI
Kirill
такого написания не видел никогда
Я видел зато) вариантов уйма, как бы ни написал, скорее всего, напишешь правильно
Anonymous
raml поприятнее чем openapi
Daniel
но стандарт - именно сваггер
Мерль
#podcast #подкаст http://golangshow.com/episode/2017/08-09-107/
Vsevolod
Выбирали ща между сваггером и рамлом. Выбрали рамл, так как он удобнее и более функциональный. Конвертация в openAPI 2.0 есть, так что проблем не должно быть с поддержкой типов. + пока он нам нужен для описания API. Нашли один минус в нем, он не очень хорошо подходит для описания параметров в multipart/form-data
Vsevolod
А со openAPI 3.0 пока не понятно. Мало кто его поддерживает, + редактирование только в стандартной утилите по факту. И есть проблемы с тем, что их стандартная утилита не полностью поддерживает openAPI. К примеру, он не может корректно отображать examples.
Vsevolod
А после openAPI 3.0 переходить на openAPI 2.0 как то не оч приятно. Перешли на RAML в итоге.
Daniel
погодите
Daniel
openapi это и есть swagger 2.0
Daniel
теперь вот 3.0 вышел, ждем go-swagger для него
Vsevolod
главное слово - ждем :)
Daniel
это да, но 2.0 уже вполне юзабельный
Anonymous
У raml одна беда, мало инструментов для работы с ним
Anonymous
в raml для 0.8 есть кое-какие инструменты, а 1.0 не все поддерживают, если в конечном итоге самому придётся писать генератор кода на основе спецефикации, то raml, по моему мнению, удобнее
Vsevolod
Я в Питере :) Там особо интересного нету в выборе :) Просто выбрали исходя из возможностей. Грубо говоря, можно почитать про resourseType и понимаешь, что это намного удобнее чем в openAPI 3.0
Daniel
ну вот я бы все равно послушал, и вопросов позадавал
Vsevolod
go-swagger нам не подходит, поэтому кодогенератор свой писать будем, а RAML удобен в этом.
Vsevolod
Посмотрим :) А ссылочку можно на митап?
Daniel
он пока в слаке обсуждается
Daniel
на канале #meetup-spb
Daniel
go-swagger нам не подходит, поэтому кодогенератор свой писать будем, а RAML удобен в этом.
и про то, чем не подходит, и про то, как вы собираетесь генератор писать - послушал бы тоже
Vsevolod
Спасибо ) Посмотрим, как по загруженности будет :)
Мерль
https://github.com/dominikh/go-tools
Alex
Добрый вечер! Есть ли библиотеки, позволяющие сгенерировать случайную строку символов с заданной длинной. Или лучше самому написать? Просто не хотел заморачиваться с максимально независимым распределением.
Chebyrash
rune?
Alex
так это тип
Chebyrash
Oleg
Максимально-независимое распределение - имеется ввиду крипто-стойкое?
Oleg
Если крипто-стойкость не нужна, то функция пишется легко, пример уже скинули :)
Daniel
а если нужна - все то же самое
Daniel
только rand из crypto
Alex
Спасибо. Просто думал как ведет себя rand.Intn при нескольких вызовах на коротком промежутке
Daniel
это /dev/urandom в линуксе
Daniel
прям оттуда и читается
Alex
только rand из crypto
Ок. Думаю, то что нужно. Спасибо
Daniel
про крипторанд надо помнить, что он, на самом деле, из /dev/random читает
Daniel
и может заблокироваться на некоторое время, если энтропия исчерпалась
Daniel
а про обычный рандом надо помнить, что его никто не встряхивает, и, соответственно, если забыть самомму это сделать, он всегда одну последовательность генерит
Kirill
Лол
Kirill
BenchmarkBytesToString-4 1000000000 2.73 ns/op BenchmarkBytesToStringBuiltin-4 20000000 93.8 ns/op
Kirill
Забыл результаты с памятью скинуть, ну да ладно. Мой вариант - 0, встроенный - 1
ill-ya
А как называется структура? a uint8[1] b uint8[1] - когда биты пишутся
ill-ya
bitfield
Oleg
я не могу написать cli мне надо programm [options] messag with space
Попробуй вот это, парсер аргументов на конечных автоматах - https://github.com/jawher/mow.cli
Anonymous
Всем привет. Народ, а может кто подскажет как реализовать паузу в нескольких горутинах? Может каналами как-то? Спасибо.
Anonymous
Забыл результаты с памятью скинуть, ну да ладно. Мой вариант - 0, встроенный - 1
как сделать бенчмарк с инициализацией, чтобы она не учитывалась в тесте и показывала правильные данные?
Alexander
b.ResetTimer
Anonymous
b.ResetTimer
спасибо, есть нормальная дока по ним?
Alexander
В самом package, наверное
Anonymous
b.ResetTimer
похоже все-таки не совсем то