Category : javascript

javascript
Создание персонального AI-ассистента с использованием RAG: пошаговое руководство

Не так давно стала задача создать персональный чат-бот ассистент для компании занимающейся разработкой ПО. Система должна была иметь как Backend, отвечающий за работу с локальной нейросетью, так и простой FrontEnd, виджет на JavaScript, который можно подключить на любой из страниц компании. Ресурсов описывающих работу RAG-систем полно, однако руководств, которые расскажут и поэтапно проведут разработчика через все необходимые шаги я не нашел. Тем самым, постараюсь восполнить пробел в данной ст…

  • четверг, 23 января 2025 г. в 00:00:03
javascript
Селекторы HTML элементов в JavaScript

Манипулирование деревом DOM, это альфа и омега любого фронтенд-разработчика, а это не возможно без селекторов позволяющих находить HTML элементы. Давайте подробно разберёмся как они работают.Основных методов селекторов в JavaScript всего 2 и оба они являются методами классов Document и Element:querySelector() - принимает строку с селектором в качестве аргумента и возвращает первое совпадение с ним или null, если ничего не найдено.querySelectorAll() - точно также принимает аргументом, строку с с…

  • вторник, 21 января 2025 г. в 00:00:07
javascript
Почему ты не должен использовать onChange в React

Недавно, работая с компонентом ввода номера телефона в форме регистрации, я столкнулся с весьма неочевидной особенностью работы различных обработчиков событий. Связано это непосредственно с onChange, onPaste и onInput. Мне пришлось провести достаточно глубокий ресерч, чтобы разобраться в особенностях, которые я встретил. Начнем по порядку.Кейсы пользовательского взаимодействияДля начала разберемся, что же это был за инпут (потому что для обычного использования инпута в базовых ситуациях и видах…

  • вторник, 21 января 2025 г. в 00:00:06
javascript
localForage — Что делать если localStorage уже не хватает?

Как вы уже, наверное, знаете, браузерные хранилища данных, такие как localStorage и sessionStorage, сильно ограничены в своих размерах и для хранения большого количества данных не подходят. В разных браузерах этот размер варьируется, но в среднем принято считать, что это около 5 МБ. Что же делать, если нужно больше ? Для этой ситуации в браузере предусмотрен другой Web API - IndexedDB. Его размеры и регулирование также сильно варьируются от браузера к браузеру, но обычно это около 50% доступног…

  • вторник, 21 января 2025 г. в 00:00:05
javascript
Селекторы HTML элементов в JavaScrip

Манипулирование деревом DOM, это альфа и омега любого фронтенд-разработчика, а это не возможно без селекторов позволяющих находить HTML элементы. Давайте подробно разберёмся как они работают.Основных методов селекторов в JavaScript всего 2 и оба они являются методами классов Document и Element:querySelector() - принимает строку с селектором в качестве аргумента и возвращает первое совпадение с ним или null, если ничего не найдено.querySelectorAll() - точно так-же принимает аргументом, строку с …

  • понедельник, 20 января 2025 г. в 00:00:06
javascript
Теория вероятностей в действии 2.0 (суть алгоритма корректировки прогнозов разработчиков)

Раз в несколько лет возвращаюсь к задаче создания алгоритма для наиболее вероятного прогноза на основании ошибок предыдущих прогнозов. В этот раз попробую обойтись минимумом текста (ссылка на демо в конце).Ссылка на оригинал статьи с объяснением принципа Доказательного Планирования (в оригинале Evidence Based Scheduling) - советую ознакомиться, чтоб быть в контексте: Joel Spolsky Evidence Based Scheduling / Перевод на русскийДля меня лично эта задача имеет небольшую историю:Версия 1.0 - При жел…

  • суббота, 18 января 2025 г. в 00:00:12
javascript
Как на примере одной кнопки можно улучшить Frontend часть проекта

Всем привет! Я джуниор фронтенд разработчик. И хотел бы рассказать как иногда применение библиотек в проекте - это излишества, которые стоит избегать.Давай начнем по порядку. Проект написан на NextJs, TS, TailwindCSS. И есть на сайте анимационная кнопка, которые при скролле красиво появляется и при клике открывает модалку.Вся логика, запилена на Gsap. И казалось бы все хорошо, библиотека делает за нас дело, рисует анимации, а мы спокойно пьем чаек и отправляем ПР в гитхаб.НО. Проблема была в т…

  • суббота, 18 января 2025 г. в 00:00:10
javascript
Архитектура для средненагруженных приложений: делюсь опытом и ищу ваши советы

Привет, коллеги! Меня зовут Санжар, я бэкенд-разработчик с опытом в настройке серверной инфраструктуры и контейнеризации для средних проектов. Сегодня хочу поделиться схемой архитектуры, которую я часто использую в своих проектах. Это не руководство к действию и не утверждение, что так нужно делать. Скорее, это возможность для меня получить обратную связь и узнать, как сделать лучше. Так что прошу вас, пишите свои идеи и советы в комментариях — это очень важно для меня. 🙂Основная идеяДанная схе…

  • суббота, 18 января 2025 г. в 00:00:09
javascript
Как из R-Keeper получать регулярную сводку по продажам заведения

В этой статье мы покажем простое решение, которое поможет отслеживать финансовые показатели своего заведения, работающего на R-Keeper. Материал даст представление о том, как может выглядеть серверная интеграция с внешними сервисами, и, надеемся, натолкнёт на новые мысли.В решении мы используем JSON-server для эмуляции (моков) реального API R-Keeper, чтобы показать архитектуру приложения. Для существующего проекта потребуется подключение к официальному API R-Keeper с учётом авторизации и других …

  • суббота, 18 января 2025 г. в 00:00:08