Size: a a a

2020 July 02

АП

Александр Попов... in Go-go!
whoami
Добрый день! Подскажите, где можно посмотреть реализацию валидаций?
Вот у меня есть модель в виде структуры
type User struct {
 Bdate time.Time `json:"bdate"`
}
в хендлере запроса я демаршализирую входной json в эту структуру и мне необходимо, чтобы если в json отсутсвует bdate, то хендлер возвращал http.StatusBadRequest

Как это лучше всего реализовать? Проверять user.Bdate == nil ? Есть ли универсальные решения?
проверять - да, но если совсем кашерно можно провернуть указатель и проверять
источник

Y

Yevhenii in Go-go!
Разрабатываю сервер\клиент на сокетах. Есть пакет network, в котором вся логика сетевых пакетов. Как можно вынести её так, что бы использовать в сервере\клиенте? Репозитории приватные.
Сейчас я просто копипастю, но нужно явно вынести, ибо могу сделать изменение на одной стороне и забыть на второй
источник

МП

Мимо Проходящий... in Go-go!
Zver
Не работало, потому что у вас количество Unlock не соответствовало количеству блокировок. Исправил ваш код и добавил панику на такой казус дополнительно.
https://play.golang.org/p/F8_CHlgGAmI
Вот теперь гут. Спасибо за опыт
источник

Y

Yevhenii in Go-go!
Yevhenii
Разрабатываю сервер\клиент на сокетах. Есть пакет network, в котором вся логика сетевых пакетов. Как можно вынести её так, что бы использовать в сервере\клиенте? Репозитории приватные.
Сейчас я просто копипастю, но нужно явно вынести, ибо могу сделать изменение на одной стороне и забыть на второй
Ну, или, наверное разумнее сначала написать network в отдельном модуле, тестами все проверять, а потом копипастить в сервер\клиент... Хотя, опять же, это кажется костылём, т.к. могу забыть что-то сделать
источник

w

whoami in Go-go!
Ладно, спасибо всем! )
источник

с

сонная википедия... in Go-go!
Yevhenii
Разрабатываю сервер\клиент на сокетах. Есть пакет network, в котором вся логика сетевых пакетов. Как можно вынести её так, что бы использовать в сервере\клиенте? Репозитории приватные.
Сейчас я просто копипастю, но нужно явно вынести, ибо могу сделать изменение на одной стороне и забыть на второй
так же как и в net/http, есть общий transport, который собственно реализует протокол HTTP и отдельные структуры клиента/сервера использующие первый
источник

с

сонная википедия... in Go-go!
зачем копипастить?
источник

Y

Yevhenii in Go-go!
сонная википедия
зачем копипастить?
Ну, нужно что бы протокол был един у клиента и сервера
источник

Н

Никита in Go-go!
Yevhenii
Ну, нужно что бы протокол был един у клиента и сервера
Положить клиент и сервер в один репо, либо же вынести транспорт в третий репо и импортировать в сервер и клиент
источник

с

сонная википедия... in Go-go!
Yevhenii
Ну, нужно что бы протокол был един у клиента и сервера
и это не ответило на мой вопрос
должна быть общая зависимость представляющая транспорт
источник

с

сонная википедия... in Go-go!
Никита
Положить клиент и сервер в один репо, либо же вынести транспорт в третий репо и импортировать в сервер и клиент
ну вот да
источник

с

сонная википедия... in Go-go!
В этом смысле, сервером может быть не все приложение с бизнес логикой, а просто базовая структура использующая протокол и дёргающая коллбэки
источник

Y

Yevhenii in Go-go!
Никита
Положить клиент и сервер в один репо, либо же вынести транспорт в третий репо и импортировать в сервер и клиент
Окей, попробую в 1 репу объединить. Т.е. мне в internal нужно будет делать 3 пакета: network, client, server, я правильно понимаю?
источник

Y

Yevhenii in Go-go!
сонная википедия
В этом смысле, сервером может быть не все приложение с бизнес логикой, а просто базовая структура использующая протокол и дёргающая коллбэки
Не понял(
источник

AP

Anton Patsev in Go-go!
https://habr.com/ru/post/509240/
Грехи оптимизации производительности. Александр Валялкин, VictoriaMetrics
источник

w

whoami in Go-go!
На sqlmock в WithArgs можно ли проверять не конкретные какие то значения а просто тип? что то наподобие WithArgs(anyInt)?
источник

с

сонная википедия... in Go-go!
вроде нет
источник

ВГ

Владимир Гришин... in Go-go!
whoami
На sqlmock в WithArgs можно ли проверять не конкретные какие то значения а просто тип? что то наподобие WithArgs(anyInt)?
источник

ВГ

Владимир Гришин... in Go-go!
вроде можно заимплементить интерфейс
источник

w

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