Обновить
360.86

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

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

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

React Custom Hook: useMediaQuery

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.3K

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

Читать далее

Микросервисы — удача или катастрофа для стартапа?

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

Микросервисы звучат заманчиво, но для стартапов это может оказаться роковой ошибкой. Неужели это идеальный кандидат на неудачу?

Читать далее

Исследование e-commerce: маркетплейсы не убили нас, а сделали только сильнее

Время на прочтение9 мин
Охват и читатели7.7K

Почему они не потопили меня и всех моих коллег. Много объективной статистики и немного субъективщины.

Читать далее

React Custom Hook: useGeolocation

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.9K

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

Читать далее

Туки-туки: где искать данные для фаззинга веб-приложений

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

Салют, Хабр! Меня зовут Всеволод, и я занимаюсь анализом защищенности веб-приложений в Positive Technologies.

С API веб-приложений я успел познакомиться со всех сторон: как разработчик, инженер в AppSec и пентестер. В большой корпорации мне пришлось столкнуться с колоссальными объемами API. Я быстро осознал, что в таких количествах их просто невозможно проверить вручную, и начал искать способы автоматизации. В результате уже больше двух лет я занимаюсь динамическим тестированием (DAST), в частности фаззингом.

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

Читать далее

Что новенького есть в CSS в 2025 году?

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

Привет, Хабр!

Мне всегда было интересно наблюдать, как развивается CSS. Держу себя в форме, чтобы не пропустить что-то важное. А недавно подумал: «Почему бы не поделиться ими с подписчиками?». И я тут.

Составил список новинок, которые мне кажутся важными и интересными. Есть несколько новых возможностей, которые очень сильно изменят CSS. Думаю, лучше готовиться к ним заранее.

Также скажу, что на сегодняшний день они реализованы минимальным количеством браузеров. Не получится использовать их прямо сейчас. Хотя некоторые можно, если вы поддерживаете только браузер Google Chrome. В любом случае про браузерную поддержку я тоже расскажу.

Давайте посмотрим, что я вам подготовил.

Читать далее

Книга: «Разработка фронтенд-приложений»

Время на прочтение2 мин
Охват и читатели7.4K

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

Книга «Разработка фронтенд‑приложений» предлагает решения, для подобных ситуаций, а также даст руководство по‑другому подойти к разработке. Совершенно по‑новому!

Читать далее

Мы 30 лет делали сайты руками, а потом пришла нейросеть

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

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

Так что не судите строго — делюсь тем, что получилось, возможно, многое можно было сделать лучше или правильнее. Буду рад вашим советам!

У меня был сайт интернет‑магазина лабораторного оборудования, который постоянно ломался. Любое изменение — и что‑то отваливалось в другом месте. В итоге я решил: хватит мучиться, надо что‑то с этим делать. И попробовал создать новый сайт через нейросеть — через Claude.

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

Нужно было создать новый каталог для 400+ позиций лабораторного оборудования. Но это не классический интернет‑магазин с корзиной и оплатой, а каталог с формой «запросить цену» — в сфере B2B так часто работают.

Читать далее

Синдром бесконечного релиза

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.4K

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

Кажется, что всё ещё можно сделать чуть-чуть лучше, чуть-чуть полнее, чуть-чуть красивее… И всё.

Читать далее

Пока, dual packaging: в каком формате публиковать npm-библиотеки

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

Уже 10 лет в JS-экосистеме воюют два формата модулей: CommonJS и ES Modules. Чтобы и получить плюшки ESM, и не распугать пользователей, npm-пакеты часто используют dual packaging: собирают код в оба формата. Это решает одну проблему, но создает несколько новых.

Сегодня расскажу

Какие проблемы пришли к dual packaging, и не пора ли от него отказаться.

В какой формат паковать npm-библиотеки в 2025 году.

Статься будет полезна и для опенсорса, и для внутренних библиотек, и для простых разработчиков (хотя бы чтобы понимать, откуда у вас в node_modules 2 Гб).

Читать далее

Trello для кодинга с ИИ: когда автопилоту нужна ручная коробка передач

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

Что если создать систему, которая работает как Trello, но специально заточенная под совместную работу с моделями искусственного интеллекта?

Это как Tesla с автопилотом — вроде бы всё автоматически, но иногда хочется взять управление в свои руки. А что если добавить к этому автопилоту "ручную коробку передач"?

Результат более предсказуем, чем при работе с большими автономными запросами к ИИ.

Читать далее

Изучаем Go: руководство для JavaScript-разработчиков. Часть 1

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели13K

После пяти лет работы JavaScript-разработчиком, занимаясь как фронтендом, так и бэкендом, я провел последний год, осваивая Go для серверной разработки. За это время мне пришлось переосмыслить многие вещи. Различия в синтаксисе, базовых принципах, подходах к организации кода и, конечно, в средах выполнения — все это довольно сильно влияет не только на производительность приложения, но и на эффективность разработчика.

Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости от Microsoft о том, что они переписывают официальный компилятор TypeScript на Go — и обещают ускорение до 10 раз по сравнению с текущей реализацией.

Эта статья — своего рода путеводитель для JavaScript-разработчиков, которые задумываются о переходе на Go или просто хотят с ним познакомиться. Я постарался структурировать материал вокруг ключевых особенностей языка, сравнивая их с привычными концепциями из JavaScript/TypeScript. И, конечно, расскажу о "подводных камнях", с которыми столкнулся лично — с багажом мышления JS-разработчика.

Читать далее

Наше общение нам больше не принадлежит. Размышляю как ИИ создаст альтернативу для Telegram без VPN и прослушки

Время на прочтение3 мин
Охват и читатели13K

Интернет‑свободы сжимаются как шагреневая кожа. То, что еще недавно было естественным правом — свободно общаться, — превращается в привилегию. А мессенджеры? Они давно перестали быть мессенджерами. Это социальные сети, замаскированные под простое общение.

Сижу, листаю новости, читаю очередное «заблокировали», «ограничили», «запретили». И думаю: блин, а только меня это раздражает?

Сегодня размышляю об искусственном интеллекте и вдруг понимаю: технологии уже готовы.

Читать далее

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

Секреты работы онлайн-редакторов: что происходит при совместном редактировании? Yjs, CRDT и другие магические слова

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

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

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

Меня зовут Никита Лыкосов, я занимаюсь фронтенд-разработкой в Doubletapp и предлагаю шаг за шагом разобраться, как устроена эта инженерная магия. Спойлер: это гораздо проще, чем кажется.

Читайте в статье:

G-Counter — самый простой CRDT
Какие правила CRDT выполняются на примере G-Counter и зачем это нужно?
Массивы
Yjs: как устроено совместное редактирование на практике

Читать далее

Что за зверь n8n. Первые шаги автоматизации

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

Разбираемся, что собой представляет n8n — мощный open-source инструмент для no-code автоматизации, и создаём первый рабочий процесс: Telegram-бота, который находит заказы в Google Таблицах.

Читать далее

CoffeeCup, HotDog и другие: странные и прекрасные HTML-редакторы прошлого

Время на прочтение7 мин
Охват и читатели7.6K

Недавно на Хабре видел публикацию об интернете нулевых и поймал себя на мысли, что порой по нему скучаю. И дело даже не в том, что мне не хватает дизайна или вырвиглазных Flash-баннеров. Каждый лишний килобайт веб-страницы мог привести к тому, что человек просто оттуда уйдет, не дождавшись загрузки. Такие технические ограничения вынуждали веб-мастеров оптимизировать размер изображений и применять массу других приемов, которые позволяли снизить объем передаваемых данных.

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

Читать далее

Резервные копии PostgreSQL: сравнение скорости pg_dump в разных форматах и с разными уровнями сжатия

Уровень сложностиСредний
Время на прочтение33 мин
Охват и читатели9.3K

Я сделал резервную копию через pg_dump и восстановился из неё 22 раза. Резервные копии делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для моего сценария использования.

Детали и замеры — ниже.

Читать далее

Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux

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

Microsoft удивляет поклонников MS-DOS ремейком старого текстового редактора, который работает в Linux

В прошлом месяце Microsoft выпустила современную версию своего классического редактора MS-DOS Editor, вернув часть истории компьютерной индустрии, которая впервые появилась в MS-DOS 5.0 еще в 1991 году. Новый инструмент с открытым исходным кодом, созданный на Rust и просто названный «Edit», работает на Windows, macOS и — что казалось бы невозможным три десятилетия назад — Linux.

Читать далее

Контроль расходов на SMS через API: как сделать свою систему финансового мониторинга за вечер

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

Привет, Хабр. На связи Катя Саяпина, менеджер продуктов МТС Exolve. В этой статье разберём, как предотвратить приостановку бизнеса — вовремя пополнять баланс на отправку SMS. С минимальными усилиями соберём свою систему мониторинга расходов на сообщения. Будем фиксировать фактические траты, отслеживать аномалии, строить линейный прогноз и слать себе контрольные SMS.

В статье собрано решение на PHP с Composer, cron и MySQL. Всё максимально просто, чтобы за один вечер развернуть систему на любом сервере без внешних зависимостей.

Читать далее

Agile! — паразит поедающий до костей

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

И как же из паразита сделать симбиота? Agile — слово, которое стартапы любят произносить на каждом питче.

Читать далее

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