Depository of News

Как лень довела меня до написания кодогенератора

newsdepo.com · world

<p>Лень — двигатель прогресса. Я очень ленив, поэтому прогресс должен был выйти впечатляющим. Спойлер: он и вышел, но с ленью что-то пошло не так.</p><p>Началось с того, что я предложил взять go-playground/validator — и услышал, что рефлексия нас замедлит. Бенчмарки показали единицы микросекунд на структуру: примерно столько же, сколько json.Unmarshal того же тела, и на три порядка меньше похода в базу двумя строками ниже. Решение всё равно осталось прежним.</p><p>Поэтому я убрал рантайм целиком: разбор запроса и валидация генерируются из тегов структуры на этапе сборки. Опечатка в теге стала ошибкой генерации, а не пропущенной проверкой. Транспорт и вовсе оказался ни при чём.</p><p>Ниже — как это выглядит, чего генератор делать отказывается и чем я за это заплатил.</p> <a href="https://habr.com/ru/articles/1077792/?utm_source=habrahabr&amp;utm_medium=rss&amp;utm_campaign=1077792#habracut">Читать далее</a>

Read full article →