Віктор Турський про програмування / навігатор

інструменти / livr

LIVR

LIVR (Language Independent Validation Rules) — власна бібліотека валідації Віктора, народжена у WebbyLab, який стандартизує свої стеки: вони перепробували всі бібліотеки валідації, спершу написали специфікацію і лише потім реалізації, тож той самий формат правил тепер існує в JS, PHP, Perl, Go, Swift та Erlang (google-io-2023-watch-party). Дизайнерський пітч, викладений у глибокому порівнянні LIVR і Zod з його design doc (Вайб-кодінг — частина 2 (стрим)): правила — це чисті дані, серіалізовні, тож правила LIVR можна було б скомпілювати в Zod, але не навпаки; є аліаси правил у дусі DDD (правило valid_price з власними кодами помилок) і свідома відмова від кодогенерації як позиція з безпеки. Щодо продуктивності: на «прогрітому» шляху цифри порівнянні (Zod ~4M ops/s проти ~3.4M у LIVR), але коли правила конструюються динамічно, Zod повільніший приблизно в 94 рази.

У стримах про вайб-кодинг LIVR — це ще й лінза на роботу з AI: він хоче, щоб правила валідації керували виведенням типів TypeScript — runtime- і статична валідація з однієї схеми в одному модулі — але Claude вперто дублював типи, і цю поправку довелося окремо йому пояснювати (Вайб-коджу новий крутий проєкт (стрім)).

Розібрано у відео

Повʼязане

Проєктування програмного забезпечення — філософія дизайну: спершу специфікація, правила як дані. Абстракції — аліаси правил як доменна абстракція над сирими валідаторами. Вайб-кодинг — стрими, де LIVR зустрічається з кодом, згенерованим AI. Практики безпеки — відмова від кодогенерації як позиція з безпеки.