Max
json.Unmarshal(interface{})
Max
Здравствуйте. Подскажите, каким образом можно распарсить JSON такой структуры:
{"errorpages" : [{"type": 404,
"url":"/404.php"},
{"type":"500", "url:"/500.php"}],
"id":500,
"charset":"utf-8",
"box": {"backend":"php",
"name": "sinatra.ru"}
}
короче, суть в том, чтобы создать структуру из type полностью идентичную данному json
Danila
Да
Max
[] - массив
{} - класс
«id» - поле
Anonymous
🏁Александр
кто работал со связкой Viper+Cobra?
🏁Александр
задолбался я
🏁Александр
как туда серьзную конфигурацию пропихнуть с правилами
🏁Александр
на 30+ параметров
🏁Александр
должна кормиться с файла, но если объявлен аргумент приложения, он перетирает поверх. При этом если значения нет ни там ни там то ошибка
🏁Александр
да и еще два бинарника при этом
🏁Александр
не хотелось бы полотно из
rootCmd.PersistentFlags().StringVar(&author, "author", "YOUR NAME", "Author name for copyright attribution")
viper.BindPFlag("author", rootCmd.PersistentFlags().Lookup("author"))
🏁Александр
два раза копипастить
🏁Александр
там строк 50
🏁Александр
@onokonem вот что с этим делать? Цензурные слова закончились
🏁Александр
попробуй называется сделать "дедубликацию" что бы не наплодить сущностей еще
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
на 30+ параметров
Может пойти по пути наименьшего сопротивления и оставить только конфигурационный файл с Viper?
🏁Александр
нельзя
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
нельзя
Если это не требования ТЗ - то можно. На мой взгляд это тупо тормоз. Не знаю что у вас за проект но надо все доделать сначала, а потом уже и рюшечки добавлять.
Anonymous
Коллеги, подскажите, правильно ли писать тест для интерфейса и если да - то как правильно. В смысле того что методы конкретных структур могут же себя по-разному вести. Вроде как напрашивается что тестить надо не интерфейсы.
Васильев Виктор
СОбственно у интерфейсов же нет реализации....как ты их тестировать будешь?
Васильев Виктор
ты можешь сделать тест функцию которая принимает интерфейс а поадвать на нее реализациюб
Васильев Виктор
что поможет тебе сократить число кода если реализаций несколько
Васильев Виктор
И то если это имеет смысл
Васильев Виктор
Обычно лучше тсделать отдельный тест для каждой реализации
Васильев Виктор
чтобы легче было изолировать ошибку
Anonymous
Anonymous
получается что это бесполезное занятие и нужно тестировать сами реализации
Васильев Виктор
Ну мало ли. Тут уровень у всех очень разный так что я на всякий случай это упомянул
Anonymous
это правильно
Васильев Виктор
Васильев Виктор
Но да
Васильев Виктор
лучше реализации тестировать в любом случае
Anonymous
Вот конкретный пример: я сделал две структуры с методами: стек и очередь.
У них одинаковые методы - добавить данные, показать конкретный элемент, показать все элементы, и удалить элемент.
Результат работы методов "добавить данные, показать конкретный элемент, показать все элементы" для обоих структур - одинаковый. поэтому, тестирую я именно методы интерфейса, ожидая одинакового поведения. красота. Но вот удаление данных всё портит, так как оно происхордит по-разному. Что портит картину = )
Васильев Виктор
А в чем разность которая портит картину при удалении ? :)
Васильев Виктор
МНе просто интересно
Васильев Виктор
Просто вот по моему мнению что стек что очередь ведь не удаляют данные а именно возвращают просто с разных сторон и таким способом данные уходят из структуры, верно? ПОэтому функция pop возвращает или сами данные или ошибку чтоданных больше нет и затем удалеят из очереди или верхушки стека
Васильев Виктор
может я что-то не так понимаю, поправь меня
Danila
https://pastebin.com/VFiWmh2w
Danila
Нормально ли так проверять лицензию?
Nikita
Danila
Почему?
Anonymous
да, проблемы нет. Просто для отдельной функции надо проверять именно реализацию, пока для всех остальных так красиво проверялись методы интерфейса )
Васильев Виктор
Ну в том и суть тестов чтобы проверять именно реализации :)
Anonymous
Васильев Виктор
В общем - да. Пришли к решению)
Васильев Виктор
Anonymous
киньте пжлст кто-нить пару идей что написать джуниору за несколько дней для треньки как полезную прогу а не из серии "сортировки пузырьками"
Антон
Je
Лол, и еще один валидатор структур
Je
Антон
Anonymous
Cat
Je
нет, есть шутка в го-сообществе, если не знаешь, что написать - пиши еще один http-роутер
Je
go chi как базисный пример
Anonymous
а почему шутка?
Je
потому что их уже дохрена
Anonymous
ясно.
Anonymous
а маршрутизация третьего уровня есть на го?
Je
докер?)
Anonymous
при чём тут докер
Anonymous
докер это виртуализация/изоляция среды для процесса
Anonymous
Je
а сети там по-твоему нет?
Maksim (Ellrion)
Anonymous
А питаться чем, святым духом?
Anonymous
Anonymous
🙁
Anonymous
Anonymous
Ну, желаю крепкого здоровья.
Anonymous
сохранить остатки )
Anonymous
можно быть умнее и не загонять себя в эти рамки.