інструменти / 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 вперто дублював типи, і цю поправку довелося окремо йому пояснювати (Вайб-коджу новий крутий проєкт (стрім)).
Розібрано у відео
- Вайб-кодінг — частина 2 (стрим)
глибоке порівняння LIVR і Zod: правила як чисті дані, аліаси правил, без кодогенерації, бенчмарк динамічних правил (розрив ~94x).
- Вайб-коджу новий крутий проєкт (стрім)
виведення типів TypeScript з правил валідації як дизайн-ціль, якої довелося вчити Claude.
Повʼязане
Проєктування програмного забезпечення — філософія дизайну: спершу специфікація, правила як дані. Абстракції — аліаси правил як доменна абстракція над сирими валідаторами. Вайб-кодинг — стрими, де LIVR зустрічається з кодом, згенерованим AI. Практики безпеки — відмова від кодогенерації як позиція з безпеки.