Zod: строгая валидация и удобная типизация. Опыт переходаПривет, Хабр! Меня зовут Сергей, я фронтенд-инженер в Банки.ру.В этой статье расскажу, как Zod помог нам перестать писать валидацию на уровне полей, подружился с React Hook Form и стал единым источником правды о структуре данных.К Zod мы пришли не сразу. Долгое время типы и валидация у нас жили в разных слоях приложения: TypeScript определял структуру данных во время разработки, а отдельные функции или библиотеки (вроде Yup) проверяли вхо…
1. Введение:1.1 Идея проекта — эмоции в цифровом формате.Типичная картинка с котом и надписью «Happy Birthday» — именно такие открытки чаще всего используют. Вариантов, конечно, тысячи, но суть одна.Наверное, каждый из нас ловил себя на мысли: что отправить на день рождения в этот раз? Просто текст, тёплую фотографию или голосовое сообщение? И сразу вспоминается это чувство, когда ищешь или обдумываешь креативный текст, а потом вспоминаешь о милой картинке с котиком, гифке с шампанским или стан…
Привет, Хабр! (И тебе, 1С-ник, который привык к «желтой» программке, и тебе, веб-разработчик, который до сих пор думает, что 1С - это только про накладные и бухгалтеров.)В прошлой серии мы выяснили, что «1С:Предприятие.Элемент» - это не та «желтая программа», к которой привыкли бухгалтеры, а вполне себе модный cloud-native зверь с IDE в браузере. Но слова - это дешево. Разработчику нужно видеть код, архитектуру и понимать, как это соотносится с тем, что он уже знает (будь то 1C, Python или Java…
TL;DR: Написал open-source десктопное приложение UnblockPro на Electron, которое в один клик обходит DPI-блокировки Discord, YouTube и других сервисов. Работает на macOS и Windows. Без VPN, без серверов, без абонентки. Код на GitHub — by-sonic/unblock-pro.Зачем вообще это было нужноС осени 2024 года ситуация с доступом к Discord и YouTube в России стала, мягко говоря, непростой. VPN — вариант, но:Платные сервисы стоят денег и сливают скоростьБесплатные — сливают данныеНе все работают стабильноН…
Встав утром и посмотрев в профиль, отметил: на Хабре много лет, писал статьи, писал код. И ни разу не писал о коде на Хабре. А вообще-то разработчик. Поззорище! Пора исправляться. Поговорим о классической (и болезненной) проблеме кодирования "присваивание вместо равенства" которая в любой момент может создать очень много проблем. О логическом источнике этой ошибке, и о способах решения. Ну и ещё слегка вспомним "Звездные войны" :)Проблема "диверсанта" внутри условияКогд…
Исходный код, разобранный в статье, размещён по ссылкеНа картинах или геральдике Георгий Победоносец всегда с копьём. Но почему копьё? Можно было изобразить лук, мечь, булаву. Длинное древко копья идет в облако в небеса (к начальству): знание и сила работают с инструментом действия как левая и правая нога. Метафора c Claude Code прямолинейна. Impossible? Possible.Именно в этом проблема Claude Code.Claude Code — это AI-агент от Anthropic для автономной разработки кода. Он обладает сверхчеловечес…
Зачем изобретать свой Street View?Все мы привыкли к Google Street View, но что, если нужно показать пространство, куда машина со 360-камерой не заедет? Интерьер офиса, музей, университетский холл. Коммерческие решения для виртуальных туров часто дороги или ограничены в кастомизации.Рисунок 1 – Интерактивная 3D-карта институтаПривет! Меня зовут Илья, я студент Иркутского Политеха. Я столкнулся с задачей — создать интерактивную карту этажа университетского корпуса. Ранее создавалась такая же инте…
Когда заходит разговор про WebAssembly, где-нибудь в начале дискуссии обычно появляется комментарий в духе «А что, собственно, произошло?»Этот язык преподносили как нечто поворотное. Неужели это просто был яркий маркетинг? А может, очередной случай с обречённым на провал апплетом JVM?И я хочу подойти к этой теме немного со стороны, так как подобные вопросы содержат ошибочные предположения, которые следует прояснить.СодержаниеРеальная картинаЧто такое WebAssemblyО скоростиОб эффективностиЦелевая…
Здравствуйте, коллеги программисты!Большинство фейлов в CI — это мелочи: забытый console.log, форматирование, линт, сломанный импорт, файл без теста. Такие ошибки не должны доезжать до сборки или код-ревью.Git-хуки позволяют запускать проверки прямо во время git commit и блокировать коммит, если были обнаружены нарушения.В прошлой статье я рассказывал про скрипты, которые я использую для проверки качества кода в PHP/Laravel.В этой статье я хочу рассказать о скриптах для JavaScript/TypeScript и …