Category : javascript

javascript
Рабочее место не-вайбкодера по методу Spec-Driven Development: запускаем Claude Code

Привет, Хабр! Меня зовут Даниил Подольский, я программист и архитектор, разрабатываю программное обеспечение и спецификации для создания ПО в YADRO. Вот уже девять месяцев я использую методологию Spec-Driven Development (SDD) в работе и управляю AI-агентами, которые пишут код. При этом я не считаю себя вайбкодером, потому что мой подход к работе более комплексный, чем просто «общение с AI».  Это первая статья из цикла об оборудовании рабочего места SDD-кодера. Я расскажу о базовой настройке AI-…

  • четверг, 30 апреля 2026 г. в 00:00:13
javascript
Безопасность приложений на Typescript от А до Я: гайд по защите от очевидных и не очень уязвимостей

Разберем вопросы защиты приложений на базе TypeScriptЯ часто замечаю, насколько некоторые разработчики халатно относятся к вопросам безопасности своих приложений. И начинают задумываться о методах защиты только тогда, когда уже приходится переписывать большую часть приложения. Сегодня мы пройдемся по классическим и не только методам атаки, посмотрим, где компилятор бессилен, и построим современную защиту, опираясь на лучшие практики и конкретные примеры кода.В данной статье специально приведен…

  • четверг, 30 апреля 2026 г. в 00:00:11
javascript
Проблемы санации SVG

Рендерер Scratch имеет долгую историю связанных с SVG уязвимостей. Их источником становится то, что Scratch парсит сгенерированный пользователем (то есть контролируемый нападающими) контент в элемент <svg> и добавляет его в основной документ для выполнения различных операций (например, для измерения ограничивающего прямоугольника SVG более надёжным образом, чем viewbox или width/height).Даже если SVG остаётся в основном документе очень недолго, это небезопасная по своей природе операция. …

  • четверг, 30 апреля 2026 г. в 00:00:10
javascript
WebAssembly: обзор технологии, эксперименты с числами и мечты о браузере без JS

WebAssembly находится в разработке уже более 8 лет. Технология прошла долгий путь развития и недавно разработчики из Bytecode Alliance выкатили версию 3.0.О WebAssembly уже много материалов, но сегодня нам важна сама суть. У нас есть возможность, воспользовавшись любым из доступных языков программирования, написать модуль с необходимой нам логикой и запустить в исполняемой среде браузера. Разработчики обещают: модули будут быстрее и безопаснее, чем JavaScript, а также созданные ранее технологии…

  • среда, 29 апреля 2026 г. в 00:00:13
javascript
Затенение в JavaScript

В статье о глобальной области видимости в JavaScript, мы коротко коснулись темы затенений (бурж. variable shadowing), в данной статье мы рассмотрим это явление подробнее.В одной области видимости, не может быть переменных или аргументов с одинаковыми именами. Нарушение данного правила ведёт к ошибке:function greetingUser(userName) {     let userName = 'Васятка' // Uncaught SyntaxError: Identifier 'userName' has already been declared     console.log(`Привет ${userName}`) } gr…

  • среда, 29 апреля 2026 г. в 00:00:09
javascript
Как я сделал SEO-дружелюбный поиск в React через History API и React Helmet

Я фронтенд-разработчик, и в одном из своих пет-проектов на React — сервисе с цветовыми палитрами — мне нужно было сделать функционал фильтров, токенов поиска и поиска по названию, где пользователь мог бы выбрать цвет, задать стиль палитры, отфильтровать по количеству цветов и вводить текстовый запрос. И все получилось: интерфейс удобный, всё меняется мгновенно, без перезагрузок, как и ожидается от современного приложения.Но возник простой вопрос: «А что из этого вообще видит поисковик?»И ответ…

  • среда, 29 апреля 2026 г. в 00:00:06
javascript
JavaScript Shader Language или JSSL

Хочу рассказать о генераторе GLSL-кода для WebGL, позволяющем писать шейдеры буквально на JavaScript с некоторыми условностями, используя все удобства IDE, такие как рефакторинг, подсветка синтаксиса, автокомплит и проверка на ошибки, а в математических выражениях использовать обычные JS операторы: +, -, *, /, =, +=, -=, *=, /=, ++, --.Сразу приведу пример рабочего кода, чтобы было понятно, о чем идет речь:class VertexShader extends Shader { constructor(POSITION, NORMAL, TANGENT, NORMAL_MATRI…

  • вторник, 28 апреля 2026 г. в 00:00:14
javascript
Иди слепо к своей цели, но будь готов упасть лицом в грязь

b0w9rПривет, Хабр. Я b0w9r.Полтора года назад мои знания в разработке находились на отметке 0.00. Кто-то из вас, возможно, помнит мою историю: я начинал учить HTML и CSS, выписывая теги ручкой в тетрадь, потому что у меня не было ни ноутбука, ни компьютера.Я всё ещё иду по следам программирования, но недавно я сделал важный шаг — всего за 1 месяц я собрал и выкатил свой первый продукт: FocusMind (локальный рабочий хаб с Pomodoro, задачами и заметками).Оглядываясь на эти полтора года и этот безу…

  • вторник, 28 апреля 2026 г. в 00:00:12
javascript
Как я построил кеш страниц для многодоменного проекта с помощью PVC и кастомного подхода

У меня был проект, где один Next.js сайт обслуживал несколько доменов, и возникла задача - эффективно кешировать страницы, чтобы не пересоздавать их каждый раз. Сначала я попробовал внедрить кеширование через Redis: я написал хендлер, подключил его, но вскоре обнаружил, что Redis потребляет колоссальный объём оперативной памяти - порядка 100 ГБ, и это при том, что ещё не все запросы были закешированы. Тогда я решил поискать другой подход и обратил внимание на PVC - общее хранилище, которое могл…

  • вторник, 28 апреля 2026 г. в 00:00:10