Обновить
341.18

Веб-разработка *

Делаем веб лучше

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

View Transitions API

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

Полистав различные ресурсы в Интернете и просмотрев множество видео по данной теме, я решил составить наиболее полную картину по данному, не побоюсь этого слова, революционному API, чтобы вы уже сегодня могли начать использовать его в своём проекте!

Читать далее

Парсим Ozon. Собираем информацию о ценах, товарах и отзывах

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

После того как мы разобрались с парсингом Wildberries, логично двигаться дальше и освоить Ozon. Но здесь нас ждёт сюрприз. Ozon гораздо сложнее парсить из-за динамической загрузки контента и более строгих политик автоматизированного доступа.

В этой статье мы разберём, почему для Ozon нужен браузерный парсинг, как использовать Playwright для успешного парсинга и как обернём решение в Telegram-бота, который по запросу пользователя парсит товары и отправляет CSV-файл.

Читать далее

Пишем свою ноду в n8n под любой API за вечер

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

Сегодня многие разработчики различного уровня знают n8n как гибкий инструмент для автоматизации. В нем можно собрать почти любой сценарий - от простейшего Telegram-бота до сложных бизнес-процессов, используя множество готовых нод (узлов) для работы с популярными сервисами.

Но что делать, если в это множество не входит один из используемых вами сервисов, а через ноду HTTP Requests работать крайне сложно и неудобно? Или, может, хочется подключить собственный API и работать с ним по собственной логике?

Здесь напрашивается довольно простой ответ: написать свою ноду на n8n. Изначально это кажется сложным, однако, прочитав эту статью, вы сможете буквально за 1 вечер собрать минимально-рабочую ноду под ваши "хотелки".

Читать далее

Bug bounty в РФ: когда вендор молчит, а платформа подыгрывает

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

Кейс новичка о «пробах» в роли бахгхантера на примере MAX + Bug bounty платформы Standoff365 

Статья о личном опыте и выявленных системных проблемах взаимодействия исследователя с вендором и арбитражем в российской bug bounty‑экосистеме: как игнорируются критические уязвимости в «национальном мессенджере», отчёты закрываются как «дубликаты» без доказательств, а правила меняются постфактум.

Что остаётся делать этичному хакеру, когда внутренние каналы арбитража исчерпаны и нет внешних, и почему в России у белого хакера — нет прав.

Читать далее

Реверс-инжиниринг веб-сайтов для самых маленьких

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

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

Перейти к статье

HTTP и HTTPS: Разница

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

Очень часто на собеседованиях кандидаты слышат вопрос: «В чем разница между HTTP и HTTPS?» И так же часто делают задумчивое лицо, не зная, что ответить. Мы даже как-то писали об этом пост.

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

Читать далее

Почему Google Переводчик «ломает» React (и другие веб-приложения)

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему Google Переводчик может ломать React и другие современные веб-приложения. Причина в том, что расширение вмешивается в DOM, нарушая работу виртуального DOM и вызывая ошибки вроде removeChild и insertBefore. Автор показывает реальные кейсы, обходные пути и поднимает важный вопрос: имеет ли фреймворк право на полный контроль над DOM?

Читать далее

Ссылочный тип данных в JavaScript: ключ к эффективному коду

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

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

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

Читать далее

Пишем чат на Rust

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

Очередной чат, и к тому же на rust?! Да, yet another. И да, в этой статье не будет каких-то новых откровений системного программирования с написанием своего фреймворка для работы со сетью на уровне драйверов или других испытаний. Этот альманах про мой первый опыт в веб-разработке, который может быть полезен для других новичков, ведь тут мы затронем помимо злосчастного rust такие вещи, как devcontainer, REST API, идентификацию-аутентификацию-авторизацию, WebSockets, SSE, юнит и интеграционные тесты, некоторые паттерны, логирование и прочее.

Читать далее

Не обижайте Django

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

Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django — пережиток прошлого. Любой проект на Django — устаревший мусор. Любой «джанговод» — просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.

Читать далее

Разработал чат бота для программистов BayLang AI

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

Привет Хабр! Меня зовут Ильдар. Я создал чат бота помощника для программистов.

Я сделал видео обзор этого чат бота

Читать далее

Единственная шпаргалка по ReactJS, которая вам нужна

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

Добро пожаловать в ещё одну шпаргалку по React! Но подождите, это не то, что вы подумали — не просто набор случайных примеров кода и банальных объяснений, как в других шпаргалках.

Обещаю, это будет по-настоящему полезно. Мы вместе разберёмся, как работает ReactJS, и как реализованы все его крутые фичи «за кулисами», с помощью интерактивных демо, которые я специально подготовил для вас. Это поможет вам реально понять, как всё устроено, и применять знания на практике.

Перейти к разбору ReactJS

Cursor — джун или сеньор? Какой грейд у ИИ

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

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

Но насколько он хорош? Сможет ли сочинить симфонию, написать картину… то есть, конечно, сможет ли заменить живого разработчика? Мы его потыкали, протестировали и теперь хотим рассказать, на какой грейд он мог бы рассчитывать в российской ИТ-компании

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

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

Зачем я решил научить Statuser следить за DNS — и что из этого вышло

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

Мы привыкли считать, что если сервер доступен и SSL в порядке — значит, всё под контролем. Но иногда сбой происходит раньше, ещё до того, как запрос дошёл до сервера.

Меня зовут Михаил Шпаков, я создаю и развиваю сервис мониторинга Statuser.

Недавно я общался с руководителем IT-отдела одной компании, которая использует Statuser для мониторинга своих сервисов. Он поделился интересным кейсом: несколько часов подряд у них перестала отправляться почта с корпоративного домена. Сайт работал, сервер был доступен, SSL-сертификат в порядке — всё зелёное, а письма не уходят. Проблема выглядела случайной: часть писем доставлялась, часть возвращалась с ошибкой, а из-за этого срывались заказы и возникали прямые убытки.

Когда их команда начала разбираться, выяснилось, что недавно один из сотрудников сменил почтового провайдера и добавил новые MX-записи в DNS, но старые при этом не удалил. В результате часть писем уходила на старый сервер, который уже не принимал почту, а часть — на новый. Снаружи всё выглядело исправно, но на деле домен был «раздвоен» между двумя почтовыми системами.

После этого разговора я понял, что в Statuser не хватает отдельного типа мониторинга — контроля DNS-записей. HTTP, SSL и Ping могут быть зелёными, но если в DNS остались старые MX, сервис уже фактически неисправен.

Так в Statuser появился новый тип мониторинга — проверки DNS, который помогает замечать изменения, подмены и ошибки в зонах ещё до того, как они превращаются в простои и убытки.

Читать далее

Розыгрыш стула, похищение прав: что нашел пентестер в пет-проекте

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

Если вы начинающий разработчик и создаете свой пет-проект, легко увлечься бэкендом и фронтендом, а на ИБ сил уже не останется. Даже если проект совсем небольшой и там, казалось бы, защищать-то особо нечего, злоумышленники всегда найдут дыры в безопасности. Взломать незащищенный сайт или приложение легче, чем кажется.

Привет! Меня зовут Наташа Баранова, я младший специалист по анализу защищенности веб-приложений в Selectel. Под катом расскажу, как проводила пентест пет-проекта своего коллеги: я получала права админа, обнуляла голоса других пользователей, меняла цены, самовольно назначала победителя и подкручивала результаты голосований. И да — это все происходило в приложении, которое оказалось простым и удобным для пользователей, а уж для меня — почти праздник. Надеюсь, будет полезно и начинающим в ИБ, и разработчикам, которые хотят понять базовые ошибки безопасности.

Под кат →

Битва за уникальный сайт: где искать редкие фото и картинки, которых нет у конкурентов

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

Любой сайт или блог оживает не только за счёт текста, но и благодаря картинкам. И чем качественнее и уместнее медиаконтент, тем более увлекательным и запоминающимся получается проект. Но создавать изображения с нуля или заказывать фотосъёмку не всегда есть возможность, поэтому часто используют фотостоки.

Shutterstock, Adobe Stock, Unsplash — знакомые названия? В этом и кроется ловушка: сервисы, призванные помочь, незаметно превращают уникальные бренды в близнецов! Ведь их знают и ваши конкуренты. В итоге — одни и те же улыбающиеся люди в костюмах, типовые ноутбуки на столе или «абсолютно идеальные» неживые офисы кочуют с сайта на сайт — от банков и онлайн-школ до стартапов и НКО.

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

Читать далее

Сколько можно терпеть ошибки автозаполнения в браузере

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

Привет, Хабр! Меня зовут Сергей, я фронтенд-разработчик в Rusprofile. Давайте поговорим о работе autocomplete – автозаполнении полей в браузере. 

Благодаря этой функциональности жизнь пользователей может быть проще. Не нужно тратить время на копание в чертогах разума в поисках почтового индекса, адреса или точного названия компании. Можно не записывать логины, ИНН и другую информацию на стикеры вокруг монитора, все нужные данные подставляются автоматически. Формы на 5-10 полей перестают выглядеть такими уж устрашающими. 

Но в то же самое время, наверное, все мы видели, как путаются местами имя и фамилия из автозаполнения, а иногда кажется, что автоматически подставляются какие-то совсем случайные значения.

Эта статья – небольшая рефлексия на тему autocomplete; о природе проблем, с которыми сталкивается разработчик при работе с этим инструментарием.

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

Читать далее

Интеграции без иллюзий: интервью с Владимиром Гантуриным, техническим директором Compo Soft

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

Интеграции и обмен данными сегодня — это не просто техническая задача, а фундамент цифровой зрелости бизнеса. Российский рынок переживает быстрые изменения: уход западных вендоров, рост требований к надёжности и безопасности, распространение микросервисных архитектур. Как компании справляются с вызовами, когда стоит менять старую интеграционную платформу, зачем бизнесу API Gateway и брокеры сообщений, и можно ли обойтись без интеграционной шины?

Читать далее

Полное руководство по HTTP-кэшированию. Часть 1

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

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

В основе кэширования лежит сокращение лишней работы. Каждый раз, когда браузер, CDN или прокси обращается к серверу за ресурсом, который не изменился, впустую тратятся время и трафик. Когда сервер заново формирует или повторно отдает идентичный контент, это лишь добавляет нагрузки и увеличивает затраты. А при пиковом трафике — например, в "черную пятницу", во время вирусной публикации или DDoS-атаки — такие ошибки стремительно накапливаются и приводят к сбоям всей системы.

Читать далее

LiqTrade: от идеи до Production Ready за 3 месяца. Нельзя закончить допиливать проект, можно лишь перестать…

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

Solo developer journey: Как я довел B2B платформу от 8.5/10 до 8.8/10, исправил 13 критических багов, прошел Context7 MCP аудит и успешно задеплоил на production с первыми пользователями.

После первой части (концепция и MVP) и второй части (решение технических проблем), настал момент истины - финальная подготовка к production.

Читать далее

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