Anonymous
В gopl задачи расположены так gopl.io/ch1/dup3 Почему бы не сделать тоже самое, в каждом пакете свой main
Daniel
коллега
Daniel
сделайте так
Daniel
cmd/glava001zadacha001/main.go
cmd/glava001zadacha002/main.go
Daniel
и будет кошерно и православно
Sergey
Andrey
внутри папки куча файлов и в каждом файле своя функция main все будет работать если запускать каждый файл отдельно, вся папка не скомпилится по понятным причинам, ну и некоторые ide будут ругатся на такую структуру
Andrey
но выше уже предложили более православный вариант
Axm
Aleksandr
как я понял, сваггер 3 перекочевал в openapi инициативу к тому же, котоую форсят сильные мира сего
Anonymous
openapi и есть развитие swagger. кстати, на днях наконец вышла третья версия спецификации. гораздо более удобная
Daniel
я вот так пока и не взял себя в руки, не посмотрел
Daniel
впрочем, мне все равно нужен генератор кода
Kirill
Anonymous
Да и голос белого там не в тему
Anonymous
Но батл шикарен
Kirill
Yup
Daniel
такого написания не видел никогда
Daniel
yeap
Anonymous
Япиии
Anonymous
Anonymous
jAPI
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 одна беда, мало инструментов для работы с ним
Daniel
Anonymous
в raml для 0.8 есть кое-какие инструменты, а 1.0 не все поддерживают, если в конечном итоге самому придётся писать генератор кода на основе спецефикации, то raml, по моему мнению, удобнее
Vsevolod
Я в Питере :)
Там особо интересного нету в выборе :) Просто выбрали исходя из возможностей. Грубо говоря, можно почитать про resourseType и понимаешь, что это намного удобнее чем в openAPI 3.0
Daniel
ну вот я бы все равно послушал, и вопросов позадавал
Vsevolod
go-swagger нам не подходит, поэтому кодогенератор свой писать будем, а RAML удобен в этом.
Vsevolod
Посмотрим :) А ссылочку можно на митап?
Daniel
он пока в слаке обсуждается
Daniel
на канале #meetup-spb
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
прям оттуда и читается
Daniel
про крипторанд надо помнить, что он, на самом деле, из /dev/random читает
Daniel
и может заблокироваться на некоторое время, если энтропия исчерпалась
Chebyrash
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
Anonymous
Всем привет. Народ, а может кто подскажет как реализовать паузу в нескольких горутинах? Может каналами как-то? Спасибо.
Ilya
Anonymous
Alexander
b.ResetTimer
Anonymous
b.ResetTimer
спасибо, есть нормальная дока по ним?
Alexander
В самом package, наверное