Max
json.Unmarshal(interface{})
Danila
Да
Max
[] - массив {} - класс «id» - поле
Anonymous
[] - массив {} - класс «id» - поле
Копия класса скорее чем класс
🏁Александр
кто работал со связкой 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
это правильно
Васильев Виктор
ну а что толку если у одного и того же метода данного интерфейса разное поведение в разной реализации
Обычно если ты делаешь интерфейс то определяешь поведение для всех ерализаций примерно одно
Васильев Виктор
Но да
Васильев Виктор
лучше реализации тестировать в любом случае
Anonymous
Вот конкретный пример: я сделал две структуры с методами: стек и очередь. У них одинаковые методы - добавить данные, показать конкретный элемент, показать все элементы, и удалить элемент. Результат работы методов "добавить данные, показать конкретный элемент, показать все элементы" для обоих структур - одинаковый. поэтому, тестирую я именно методы интерфейса, ожидая одинакового поведения. красота. Но вот удаление данных всё портит, так как оно происхордит по-разному. Что портит картину = )
Васильев Виктор
А в чем разность которая портит картину при удалении ? :)
Васильев Виктор
МНе просто интересно
Васильев Виктор
Просто вот по моему мнению что стек что очередь ведь не удаляют данные а именно возвращают просто с разных сторон и таким способом данные уходят из структуры, верно? ПОэтому функция pop возвращает или сами данные или ошибку чтоданных больше нет и затем удалеят из очереди или верхушки стека
Васильев Виктор
может я что-то не так понимаю, поправь меня
Danila
https://pastebin.com/VFiWmh2w
Danila
Нормально ли так проверять лицензию?
Danila
Почему?
Anonymous
может я что-то не так понимаю, поправь меня
всё верно. В одном случае, элемент удалится с одной стороны, в другом случае - с другой.
Васильев Виктор
всё верно. В одном случае, элемент удалится с одной стороны, в другом случае - с другой.
Ну тогда проблемы ведь в тестах нет? :) ТЫ проверяешь реализацию сколкьо элементов и какой элемент пришел и все :)
Anonymous
да, проблемы нет. Просто для отдельной функции надо проверять именно реализацию, пока для всех остальных так красиво проверялись методы интерфейса )
Васильев Виктор
Ну в том и суть тестов чтобы проверять именно реализации :)
Anonymous
Васильев Виктор
В общем - да. Пришли к решению)
Васильев Виктор
Anonymous
киньте пжлст кто-нить пару идей что написать джуниору за несколько дней для треньки как полезную прогу а не из серии "сортировки пузырьками"
Je
Лол, и еще один валидатор структур
Anonymous
Роутер
сеть?
Cat
сеть?
http router
Je
нет, есть шутка в го-сообществе, если не знаешь, что написать - пиши еще один http-роутер
Je
go chi как базисный пример
Anonymous
а почему шутка?
Je
потому что их уже дохрена
Anonymous
ясно.
Anonymous
а маршрутизация третьего уровня есть на го?
Je
докер?)
Anonymous
при чём тут докер
Anonymous
докер это виртуализация/изоляция среды для процесса
Je
а сети там по-твоему нет?
Anonymous
Лол, и еще один валидатор структур
Валидатор структур эти типа ... через рефлект?
Anonymous
а сети там по-твоему нет?
по-моему, это более комплексная прога чем просто роутинг пакетов
Je
по-моему, это более комплексная прога чем просто роутинг пакетов
ну тебе что сразу cisco ios подавай, ты спросил я ответил, роутер есть - https://github.com/docker/go-connections/tree/master/nat
Maksim (Ellrion)
киньте пжлст кто-нить пару идей что написать джуниору за несколько дней для треньки как полезную прогу а не из серии "сортировки пузырьками"
напиши сравнение схем бд. (для постгрес например) но что бы подключение было через ssh тунель (т.е. сама бд в мир не смотрит).
Anonymous
А питаться чем, святым духом?
Anonymous
🙁
Anonymous
Ну, желаю крепкого здоровья.
Anonymous
сохранить остатки )
Anonymous
можно быть умнее и не загонять себя в эти рамки.
Je
можно быть умнее и не загонять себя в эти рамки.
Потом будет классика - привет, мне 35 как войти в айти