IT Kniga
Интернет-магазин компьютерной литературы

HTML, CSS, Javascript

Минималистичная JavaScript песочница

JavaScript - habr.ru - Пт, 24/01/2025 - 07:30

Основное отличие этой песочницы от других — сжатие и кодирование пользовательского кода непосредственно в URL. Код не хранится на сервере или где-либо ещё. Если у вас есть ссылка, значит у вас есть код.

Может возникнуть вопрос, сколько символов можно записать в URL и как много кода таким образом можно закодировать? У разных браузеров максимальная длина URL-строки отличается. Но 2000 символов поддерживают все современные браузеры. В такую строку можно закодировать довольно много кода, причем степень сжатия увеличивается с объёмом кода.

Читать далее
Категории: HTML, CSS, Javascript

Сколько памяти ест ваша вкладка

JavaScript - habr.ru - Чт, 23/01/2025 - 15:31

При разработке веб-приложений не все задумываются о том, сколько памяти потребляет их код. О производительности наших сайтов мы вспоминаем гораздо чаще. К тому же не каждому разработчику интересно «экономить на спичках». Разве может наш код на языке JavaScript требовать много памяти? «Много» — это вообще сколько? 100 мегабайтов — это много?

Меня зовут Антон Непша. Я работаю в Сбере, разрабатываю сайт СберБанк Онлайн и веду Telegram-канал Антон Непша.js. Недавно я выступил на HolyJS с докладом о том, сколько ресурсов потребляют наши сайты, как эти ресурсы распределяются, где хранятся, и как связать информацию о них из снимка памяти с конкретным местом в своём коде.

Если смотреть видео вам удобнее, то доклад есть на YouTube и ВК Видео. В статье вас ждёт текстовый вариант и ссылки на используемые материалы:

Читать далее
Категории: HTML, CSS, Javascript

[Перевод] Академический минимум js-разработчика: базовые концепции

JavaScript - habr.ru - Чт, 23/01/2025 - 13:31

Приветствую всех! Меня зовут Рома, я разработчик в компании АйТи-Баланс. Хочу поделиться с вами своими знаниями и помочь разобраться в базовых концепциях, которые необходимы каждому новичку в мире JavaScript.

Идея этой статьи возникла из популярного репозитория на GitHub. Я немного адаптировал материал, дополнил его и выделил ключевые аспекты, чтобы сделать информацию максимально доступной и полезной.

Читать далее
Категории: HTML, CSS, Javascript

Техническое собеседование фронтенд-разработчика: советы от тимлида

JavaScript - habr.ru - Чт, 23/01/2025 - 07:04

Я Данил Соломин, лид команды фронтенд-разработки в компании-подрядчике «Газпром нефти» и ревьюер на курсе «Мидл фронтенд-разработчик» в Яндекс Практикуме. Однажды, проводя четвёртое за день собеседование на роль мидл фронтенд-разработчика, я поймал себя на мысли, что кандидаты допускают одни и те же ошибки. Что особенно печально, эти ошибки можно было бы легко исправить. 

Именно поэтому я решил написать эту статью. Я не буду рассказывать, как писать сопроводительное письмо или ставить теги в резюме. Я расскажу о главном — как показать себя с максимально выгодной стороны на технической части. Буду основываться и на опыте прохождения собеседований (не всегда успешном), и на опыте их проведения.

Читать далее
Категории: HTML, CSS, Javascript

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

JavaScript - habr.ru - Ср, 22/01/2025 - 11:58

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

Читать далее
Категории: HTML, CSS, Javascript

Путаясь в замыканиях

JavaScript - habr.ru - Ср, 22/01/2025 - 09:23

В комментах к статье "Синглтон - корень всех зол", который вообще-то про паттерн проектирования, я высказал мысль, что в функциональном программировании "все функции - синглтоны" (это уже в смысле lifestyle - больше одной функции на приложение не нужно). Тут же мне более опытные коллеги насовали в панамку, что "функции не синглтоны, потому что существуют замыкания". Я, конечно, "сварщик не настоящий" - в ФП серьёзно никогда не игрался, но основные идеи вроде как у всех на слуху: неизменяемость данных, чистота функций, функция как аргумент / результат другой функции.

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

Тем не менее, мысль про замыкания надо было как-то подумать - не, ну а вдруг?! Под катом я привожу результаты своих изысканий на примере очень простого функционала на JS, написанного в трёх разных стилях.

Читать далее
Категории: HTML, CSS, Javascript

ИИ для веб-разработки

JavaScript - habr.ru - Ср, 22/01/2025 - 09:10


Привет, друзья!


В праздники я провел небольшое исследование представленных сегодня на рынке бесплатных инструментов с участием "искусственного интеллекта" для помощи в веб-разработке, результатами которого хочу с вами поделиться, авось кому-нибудь пригодится.


Обратите внимание, что я акцентировал внимание на бесплатных решениях для написания кода клиентской части веб-приложений.


Список протестированных инструментов:



Далее я подробнее расскажу о первых трех (Codeium, Devv, V0) и немного о двух следующих за ними (ChatGPT, GPT4All) решениях из представленных в списке, как наиболее "выдающихся" с моей точки зрения. Остальные сервисы (начиная с cursor и ниже) в той или иной степени похожи на codeium и `devv`, но показывают более плохие результаты генерации кода по запросу, исправления ошибок и документирования кода, а также менее удобны в использовании и иногда требуют дополнительных настроек, например, указания ключа OpenAI, установки лишних инструментов (тулкитов), являются условно бесплатными и т.п.

Читать дальше →
Категории: HTML, CSS, Javascript

Гибкость и контроль над данными: применение моков в разработке

JavaScript - habr.ru - Ср, 22/01/2025 - 08:33

В современной разработке приложений важным аспектом является способность быстро и эффективно создавать прототипы и демонстрационные версии. В этом посте мы расскажем о нашем опыте использования моков (mocks) для эмуляции бэкенда на примере фронтенд-проекта. Мы поделимся ключевыми проблемами, с которыми столкнулись, и решениями, которые помогли нам ускорить разработку, улучшить стабильность и обеспечить гибкость в работе с данными. Вы узнаете, как мы использовали Mock Service Worker (MSW) и Vite-плагин для создания изолированного и удобного окружения, а также какие преимущества это принесло нашей команде.

Читать далее
Категории: HTML, CSS, Javascript

[Перевод] Добавляем кнопку «Fix with AI» в отчёты Playwright

JavaScript - habr.ru - Ср, 22/01/2025 - 07:07

В статье расскажу, как с помощью AI ускорить исправление упавших Playwright тестов. В HTML-отчёт добавляем кнопку "Fix with AI", которая генерирует промпт под конкретный тест. Копируем промпт, вставляем в ChatGPT и мгновенно получаем рекомендации по исправлению.

Читать далее
Категории: HTML, CSS, Javascript

Как улучшить безопасность JavaScript-кода: лучшие практики и советы

JavaScript - habr.ru - Ср, 22/01/2025 - 02:43

Цель статьи — показать разработчикам, как защитить их JavaScript-код от распространённых уязвимостей и атак. Статья будет охватывать методы защиты, лучшие практики и конкретные инструменты для обеспечения безопасности.

Читать далее
Категории: HTML, CSS, Javascript

Неизвестно полезный CSS. Часть 7



Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

  • что вы можете не знать про псевдо-класс :not();
  • примеры работы псевдо-класса :has(), работающие по логике операторов ИЛИ и И;
  • как неожиданно может повыситься специфичность правила при использовании псевдо-класса :has();
  • чем полезно свойство user-select, кроме отмены выделения текста.

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →
Категории: HTML, CSS, Javascript

localForage — Что делать если localStorage уже не хватает?

JavaScript - habr.ru - Пнд, 20/01/2025 - 11:05

localStorage и sessionStorage сильно ограничены в размере - всего 5 МБ, а использование IndexedDB для обхода этого ограничения не всегда является удобным из-за сложного API.

localForage решает сразу обе проблемы!

Читать далее
Категории: HTML, CSS, Javascript

Почему ты не должен использовать onChange в React

JavaScript - habr.ru - Пнд, 20/01/2025 - 07:16

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

Читать далее
Категории: HTML, CSS, Javascript

Селекторы HTML элементов в JavaScript

JavaScript - habr.ru - Вс, 19/01/2025 - 13:16

Манипулирование деревом DOM, это альфа и омега любого фронтенд-разработчика, а это не возможно без селекторов позволяющих находить HTML элементы. Давайте подробно разберёмся как они работают.

Основных методов селекторов в JavaScript всего 2 и оба они являются методами классов Document и Element:

Каких?
Категории: HTML, CSS, Javascript

Гибкие макеты: Решаем проблему на корню

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

Не все знают, что можно менять размер шрифта в настройках браузера, и тем более не многие этим пользуются. Но если мы хотим обеспечить отзывчивость, мы должны учитывать и этот фактор. Во всех браузерах размер шрифта по умолчанию равен 16px; если это значение будет изменено, будет изменен и размер одного rem. Поэтому все размеры связанные с типографикой и не только лучше задавать в этих единицах.

Таким образом, мы хотим, чтобы при изменении ширины страницы или размера шрифта в настройках браузера автоматически менялись и размеры элементов, отступов и шрифтов.

Важно отметить, что изменение всех размеров нас интересует только в пределах минимальной и максимальной ширины макета.

Проблема

Например мы хотим задать размер для заголовка первого уровня. При минимальной ширине макета (320px), размер шрифта должен быть 28px.  При максимальной ширине (1440px), размер шрифта должен быть 40px. 

Для решения этой задачи мы можем использовать специальный онлайн калькулятор:

Min-Max-Value Interpolation

Для наших значений мы получим такой код: clamp(1.75rem, 1.536rem + 1.07vw, 2.5rem)

Читать далее
Категории: HTML, CSS, Javascript

Новое руководство по стилю Angular

JavaScript - habr.ru - Пт, 17/01/2025 - 15:43

Текущее руководство по стилю было создано ещё в 2016 году, когда только появился переработанный Angular v2.0. Как пишет Джереми Эльбурн (разработчик Angular с 2012 года и технический руководитель проекта), многое изменилось, пора изменить и принятый стиль разработки, поэтому предложен RFC:

Читать далее
Категории: HTML, CSS, Javascript

Как собрать идеальную команду, если кандидаты завышают опыт, используют ChatGPT и просят высокую зарплату

JavaScript - habr.ru - Пт, 17/01/2025 - 13:54

Привет, Хабр! Меня зовут Артём Елизаров, я руковожу отделом разработки фронтальных решений в R-Style Softlab. Значительную часть рабочего времени я посвящаю подбору специалистов и в общей сложности занимаюсь этим уже более 5 лет. В этой статье я хотел бы поделиться опытом проведения собеседований, их спецификой и дать рекомендации тем, кто ищет работу фронтенд-разработчиком. 

Читать далее
Категории: HTML, CSS, Javascript

Дополненная реальность в Web: какие библиотеки актуальны в 2025?

JavaScript - habr.ru - Пт, 17/01/2025 - 13:28

Привет! Я Света, фронтенд-разработчик в отделе рекламных спецпроектов в KTS.

Не так давно при работе над одной из задач мне потребовалось разобраться, какие существуют библиотеки для работы с AR в вебе. Я провела небольшое исследование, покопалась в документации, отыскала кучу примеров и решила, что этим материалом будет полезно поделиться.

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

Если вы ищете способы внедрить AR в свои проекты, эта статья поможет вам сориентироваться и составить общее представление о возможностях соответствующих библиотек.

Читать далее
Категории: HTML, CSS, Javascript

Как из R-Keeper получать регулярную сводку по продажам заведения

JavaScript - habr.ru - Пт, 17/01/2025 - 12:55

В этой статье мы покажем простое решение, которое поможет отслеживать финансовые показатели своего заведения, работающего на R-Keeper. Материал даст представление о том, как может выглядеть серверная интеграция с внешними сервисами, и, надеемся, натолкнёт на новые мысли.

Читать далее
Категории: HTML, CSS, Javascript

Архитектура для средненагруженных приложений: делюсь опытом и ищу ваши советы

JavaScript - habr.ru - Пт, 17/01/2025 - 11:23

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

Читать далее
Категории: HTML, CSS, Javascript

Большая распродажа компьютерной литературы

Полный список здесь

RSS-материал