функции MiddlewareValidateTransactionData и MiddlewareValidateBlockData для того чтобы избавиться от повторяемого кода имплементировал функцию middlewareValidation которая в зависимости от булевого флага , делает тайп кастинг в BlockData или в TransactionData и затем делает валидацию кода и взвращает Request и ResponseWriter (в случае успешного выполнения ненулевые, в случае ошибки нулевые) . Может эту функцию middlewareValidation можно исплементировать другим способом более эффективно и читабельно?
Повторяемый код это то, что после условия: if transFlag ?
По стилю 1. Комментарии зло в большинстве случаев. Вот этот точно один из них: // validate data errs := c.v.Validate(d) тут и так ясно, что функция Validate делает validate data 2. Я бы пустые строки расставил между блоками кода, выполняющими разные логические функции 3. Название переменной data - не самое информативное. Я вот смотрю и не понимаю, какая там сущность. В большинстве случаев лучше не использовать слово data и подобные общие слова. Ну и в целом названия переменных c, v, d ни о чем не говорят.
https://play.golang.org/p/h3jtjFlhybm я уже код почистил немного
в transFlag смысла не вижу
повторяемый код это как раз в middlewareValidation
Обсуждают сегодня