Как стать автором
Поиск
Написать публикацию
Обновить
321.69

JavaScript *

Прототипно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Юнит тесты роя агентов

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.7K

🐝 Тестирование роя агентов

Юнит тесты - единственный способ принять работу промпт инженера, так как не понятно, действительно ли он всё это время чатился с моделью или списал в работу на 5 минут пару недель времени. Так же, статья содержит типовые галлюцинации роя агентов, которые обязательно нужно проверить

Читать далее

Валидация сложных форм с помощью Constraint Validation API

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.7K

DOM предоставляет API для валидации пользовательского ввода. Вообще говоря, мы им пользуемся часто, например:

Читать далее

Создание интерактивных карт с D3.js и Leaflet: Визуализация объектов и графов

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров4.8K

Комбинация библиотек D3.js и Leaflet предоставляет мощный инструментарий для создания интерактивных географических визуализаций. Leaflet отвечает за отображение карт и управление слоями, а D3.js позволяет добавлять кастомные элементы, такие как маркеры, линии или сложные графы.

Читать далее

JavaScript. Как сделать невероятно быстрый многопоточный Data Grid на 1 000 000 строк. Часть 2/2: работа с потоками

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров7.2K

Demo | GitHub

Особенности Fast Data Grid:
— Невероятно быстрый
— Многопоточный
— Всего 523 строчки кода
— Нет зависимостей
— Vanilla JavaScript

Попробуйте скролл и поиск по 1 000 000 строк — Fast Data Grid.

В статье расскажу про работу с потоками.

Читать далее

Создание Умной Документации на основе Встраиваний OpenAI (Деление на фрагменты, Индексация и Поиск)

Время на прочтение8 мин
Количество просмотров1.1K

Всем привет! Хочу поделиться своим подходом к созданию чат-бота с функцией «умной документации» для проекта, над которым я работаю. **Я не являюсь экспертом в области ИИ, поэтому любые предложения и улучшения приветствуются!**

Цель этой статьи — **не** создавать очередной туториал по сборке чат-бота с OpenAI. Таких материалов уже достаточно.

Вместо этого я расскажу, как **индексировать документацию**, разделив её на **удобоваримые фрагменты**, создать для них **векторные представления (эмбеддинги)** с помощью OpenAI и выполнять **поиск по схожести**, чтобы находить наиболее релевантную информацию по пользовательскому запросу.

В моем случае документация представлена файлами в формате Markdown, но это может быть любой текст, объект базы данных и т.д.

---

## Зачем?

Потому что бывает сложно найти нужную информацию. Я хотел создать чат-бота, который может отвечать на вопросы по определенной теме и предоставлять соответствующий контекст из документации.

Такой ассистент может использоваться в разных сценариях:

- **Быстрые ответы на частые вопросы**

- **Поиск по документации как в Algolia**

- **Помощь пользователям в навигации по документации**

- **Анализ пользовательских вопросов и хранение их для анализа**

---

## Краткое содержание

Ниже приведены три основные части решения:

1. Чтение файлов документации

2. Индексация документации (разбиение, перекрытие, эмбеддинги)

3. Поиск по документации и интеграция с чат-ботом

---

## 1. Чтение файлов документации

Вместо того чтобы жестко прописывать текст, вы можете просканировать папку и найти все `.md` файлы с помощью `glob`.

Читать далее

Почему JS (и TS) это плохой язык

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K

Я знаю, что на эту тему уже было сказано много, но настал мой черед. На JS я пишу больше 10 лет, так что терпел я достаточно. Мы называем это “джаваскрипт”, но под капотом скрываются три разные сущности: EcmaScript, среда исполнения и экосистема. Иногда о них стоит говорить отдельно, но сегодня я хочу обсудить всё сразу и объяснить, почему джаваскрипт — это плохой язык. Не в смысле “не работает”, а в смысле “заставляет страдать”.

Читать далее

Cookie Store API

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.7K



До недавнего времени программный доступ к куки в браузере осуществлялся через API document.cookie — простой строковый геттер/сеттер. Для получения одного файла куки приходилось разбирать всю строку вручную и преобразовывать ее в удобный формат. А чтобы записать куки, нужно было сначала сформировать структурированные данные, затем сериализовать их в строку и только после этого присвоить значение document.cookie. Разработчики часто используют популярные библиотеки, например js-cookie, которые делают работу с куки гораздо удобнее.

Читать дальше →

Альтернатива Zod размером 1 КБ

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.3K

19 марта 2025 года вышла стабильная версия Valibot — библиотеки для валидации данных в JavaScript/TypeScript. Разработанная как альтернатива популярному Zod, она сочетает минималистичный дизайн с мощными возможностями.

В этой статье мы сравним Valibot и Zod по трём ключевым параметрам: синтаксису API, размеру библиотеки и скорости работы. Вы узнаете, чем эти решения отличаются друг от друга и почему стоит использовать специализированные инструменты валидации входящих данных.

Читать далее

Сигналы, роутинг, реактивность, Fusor приложение

Время на прочтение2 мин
Количество просмотров767

В этом посте я опишу, как настроить современную маршрутизацию и использовать Signals для реактивного отключения выбранных ссылок.

Читать далее

Как улучшить UX в PWA на React с помощью потокового Backend-Driven UI — личный опыт

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.1K

Хочу показать три приёма, как можно ускорить загрузку интерфейсов с Backend-Driven UI и улучшить UX. Решения показали хорошие результаты на демо-версии, но увы, пока ещё не внедрены в реальный проект. Было бы интересно обсудить с вами, как эти приёмы могут помочь в боевых задачах и что ещё можно улучшить.

Читать далее

5 идей для accessibility-тестов, которые можно автоматизировать уже сегодня

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.1K

В предыдущей статье рассмотрели, как быстро настроить Cypress и axe-core для запуска автоматических тестов доступности (подробнее здесь).

Теперь время перейти к практике. Какие именно проверки стоит автоматизировать в первую очередь? На каких ошибках доступности можно поймать проблемы ещё до выхода на продакшн?

В этой статье — 5 простых, но эффективных идей для автоматизированных accessibility-тестов, которые помогают системно повышать качество интерфейсов при минимальных затратах.

Читать далее

Как мы перевели аналитику внутренних сервисов Авито на собственное решение

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров6.2K

Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.

Читать далее

CI/CD для чайников — разберитесь, и начните автоматизировать рутину в разработке. Часть 3. Его величество, деплой

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров13K

Пишу про полезные материалы про IT, и собираю свой ламповый нетворкинг тут - https://t.me/+434aQiGpZtAyNTU6. Присоединяйтесь!

Оглавление.

Читать далее

Ближайшие события

Пробуем Junie от JetBrains на реальной задаче (или как я попал в рассказ Азимова)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров15K

JetBrains зарелизил новую версию своего AI-ассистента и вместе с ним Junie - автономного нейросетевого агента-программиста, которому можно поручать небольшие рабочие задачи.

Буквально вчера я получил к нему доступ и не смог не воспользоваться возможностью. Я даже не представлял...

насколько это весело.

О странностях Javascript

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров12K

"JavaScript отстой, потому что '0' == 0!"

Да, эта часть JavaScript действительно ужасна, но сегодня в любом проекте есть линтер, который тут же заворчит на вас за такой код.

Вместо этого я хочу поговорить о более странных особенностях JavaScript — о таких, которые гораздо более коварные, чем эта ☝️ - о вещах, которые вы не найдете ни на r/ProgrammerHumor, ни в обычном учебнике по JavaScript.

Все эти странности могут возникнуть в любом окружении JavaScript/ECMAScript (будь то браузер, Node.js и т.д.), с режимом use strict или без него. (А если вы работаете над легаси-проектами без строгого режима, вам следует срочно подумать о смене работодателя).

Читать далее

Паттерны проектирования Composable в Vue

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров4.6K

Если вы уже освоили основы написания Composable в Vue, то следующий шаг — собрать коллекцию лучших и самых полезных паттернов, расширив свой инструментарий для решения задач. В этой статье мы рассмотрим семь различных паттернов для написания более эффективных Composable.

Читать далее

React vs Vue – подробное сравнение и перспективы

Уровень сложностиСредний
Время на прочтение46 мин
Количество просмотров21K

В этой статье мы проведём подробный анализ современных практик frontend-разработки, сравним состояние React и Vue 5 лет назад и на текущий момент, а также попробуем спрогнозировать их перспективность в обозримом будущем с учётом развития LLM моделей и AI агентов. Посмотрим их экосистемы (Next.js и Nuxt, Redux и Pinia), использование в бэкенде, популярность решений в энтерпрайзе, а так же понимание разработчиками и LLM моделями.

Читать далее

Приемы, шаблоны, утилиты Typescript: Циклы, счетчики, шаблоны строк разной длины

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.2K

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

Старался сделать доступным для широкой аудитории.

Хотите знать больше?

«Danil OS» или локальные веб интерфейсы

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

Эта статья расскажет о моём эксперименте по оптимизации моего рабочего пространства в macOS.

Примерно 10 лет назад я придумал одну идею — канбан-рабочий стол. Я понял, что иконки на рабочем столе были крутыми… в 1984 году. и втом числе поэтому 1984 не был как 1984) Но камон, за 40 лет кроме виджетов почти ничего не изменилось. Марк…

10 лет назад, узнав о системе канбан, я начал пользоваться Illustrator’ом и рисовал себе 4 колонки прямо на рабочем столе. Поверх них размещал стандартные стикеры, полностью отключив иконки рабочего стола.

Прошло много лет. Я немного выучил веб, и теперь у нас есть опенсорсный софт, который помог мне сделать то же самое, но уже более серьёзно.

Во-первых, Plash — программулька, которая ставит Chrome вместо бэкграунда.
Я также сделал на Python с FastAPI и Jinja и запустил себе уже настроенный канбан-рабочий стол.

Но как вы понимаете, на этом дело не кончилось.

Гуляя по интернету, я нашёл несколько исходников с открытыми лицензиями, которые я использовал в своём проекте.

Читать далее

Определение bpm (beats per minute) в браузере

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.2K

Когда-то я занимался спортивными парными танцами. Часто на тренировках была необходимость узнать темп (или скорость, если немного подушнить насчёт терминов) играющего трека, который измеряется в «ударах в минуту» (beats per minute, bpm)

Спортсмены используют для этого разные сайты/приложения, где нужно пальцем «протапать» ритм. Я и сам таким пользовался, но однажды я задался вопросом — смогу ли я сделать браузерный сервис, который сможет определять bpm из записанного через микрофон аудио

Эта статья как раз о том, как я его сделал

Я не буду вдаваться в тонкости реализации непосредственно UI: у меня уже был на момент начала разработки пет-проект на React, и сервис я решил делать на базе него.

Читать далее

Вклад авторов