Slide 1

Slide 1 text

Эволюция реквест валидатора Иванов Михаил

Slide 2

Slide 2 text

Минутка о себе - Backend 7+ лет - Robotics 2+ года - Go/Python/Java - Olympiads (math, physics, programming) - Snowboarding - Table tennis - Evo

Slide 3

Slide 3 text

Request validator?

Slide 4

Slide 4 text

XSD (xml schema def) or JSON schema - Огромные - Copypasta - Сложный синтаксис - Сложно валидировать - Недостаточный функционал - Не расширяемый функционал - Нет связи с полями

Slide 5

Slide 5 text

Tags

Slide 6

Slide 6 text

Genval https://github.com/gojuno/genval

Slide 7

Slide 7 text

Abstract Syntax Tree (AST)

Slide 8

Slide 8 text

Generators

Slide 9

Slide 9 text

Evolution - Enums - Aliases - Overriding - ErrList - Validators on validators - Version - Do not use interface{} - Commit generated code - Read generated code, but not edit

Slide 10

Slide 10 text

Thanks! Contacts: L1va or L1va4ka everywhere Mike Ivanov