Обновить
459.36

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

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

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

Почему я отказался от ORM в пользу чистого SQL

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

Во время выполнения очередного проекта мне пришлось работать с Битрикс ORM, при этом параллельно в системе был инстанс Laravel. Две разные ORM работали с единой базой данных. Не буду вдаваться в причины, по которым был выбран такой подход, и воздержусь от его оценки. Суть в том, что мне приходилось одновременно работать с двумя принципиально разными системами. Этот опыт привел меня к фундаментальному выводу: ORM — не для меня.

Почитать мнение

Как собрать платный AI-микро-SaaS (Next.js + Django + ЮKassa + Web Stories) и не застрять в пет-проекте

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

Большинство наших «проектов мечты» умирают не потому, что идея плохая, а потому что мы останавливаемся на уровне «ну вот, фронт есть, бэк вроде тоже, как-нибудь допилю оплаты и выложу». Не допиливаем. Потому что платежи, вебхуки, витрина, SEO, публикации — это уже не «интересный код», а «организационная скука».

Проект как раз про то, чтобы скучное сделать готовым и многоразовым. Мы один раз собираем связку: AI → Django/DRF → ЮKassa → деплой → Web Stories → SEO, а дальше в неё можно подставлять вашу идею — не только Mermaid. Mermaid здесь как манекен: на нём удобно показывать, куда вешать оплату, куда прикручивать экспорт, где пускать трафик.

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

Читать далее

Управляем техдолгом, пока он не начал управлять нами

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

Все разработчики знают, что такое техдолг.

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

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

Читать далее

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 3

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

Последняя часть по созданию своего starter-kit.

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

Читать далее

Что такое веб-сервер в Node.js и как его запустить на удаленном сервере

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

Привет, я — Honey Montana, инди-хакер, JavaScript-разработчик и автор YouTube-канала. В инструкции разберем основы работы с Node.js. Вы узнаете, как работает веб-сервер на JavaScript, подключиться к удаленному серверу по SSH, сгенерировать ключи и задеплоить проект в облако, чтобы он был доступен пользователям по сети. Подробнее — в тексте.  

Читать далее

Обзор возможностей для разработчиков при работе с VK Mini Apps

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

В 2025 году аудитория ВКонтакте достигла 92,5 млн пользователей в месяц. Пользователи ВКонтакте активно используют все внутренние сервисы, в том числе мини-приложения и игры, которые любой внешний разработчик может представить многомиллионной аудитории с помощью VK Mini Apps.

Меня зовут Никита Васюков, руководитель команды спецпроектов в направлении разработки игр и приложений. И в этой статье я расскажу, что такое VK Mini Apps, какие возможности предоставляет платформа и как мы её используем для своих задач.

Читать далее

HTML и CSS антипаттерны

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

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

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

Только по какой-то причине сложно найти антипаттерны по языкам HTML и CSS. Может, потому что они не языки программирования?

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

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

Читать далее

Полный обзор функциональности российского трекера ошибок Хоук

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

Hawk — это open-source трекер ошибок, разработанный в России. Позволяет отслеживать ошибки в веб-приложениях, API и мобильных сервисах. В этой статье подробно рассмотрим функциональность, которая сегодня доступна пользователям Хоука — от регистрации до продвинутых SDK-функций и планов на будущее.

Читать далее

Ликбез по стоковым лицензиям: как легально использовать картинки и избежать штрафов

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

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

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

Читать далее

Как использовать callback-функции в JavaScript

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

Привет, Хабр! Я — Александр Дудукало, автор одноименного YouTube-канала. В прошлой статье мы разобрали ссылочный тип данных, который хранит не само значение, а ссылку на него в памяти. Сегодня используем полученные знания на практике и познакомимся с одной из самых важных концепций в JavaScript — callback-функциями. Подробности — под катом!

Читать далее

URL как контейнер состояния

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

Пару недель назад, когда я писал пост The Hidden Cost of URL Design, мне нужно было добавить подсветку синтаксиса SQL. Я направился на веб-сайт PrismJS, пытаясь вспомнить, можно ли добавить его в качестве плагина. Меня утомило количество вариантов на странице скачивания, поэтому я вернулся к своему коду. Поискав в файле PrismJS, я нашёл в его начале комментарий, содержащий URL:

/* https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+css-extras+markdown+scss+sql&plugins=line-highlight+line-numbers+autolinker */

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

Это стало одним из тех моментов, когда ты внезапно снова осознаёшь важность чего-то. Передо мной был URL, не просто указывающий на страницу: он хранил состояние и позволял полностью воссоздать все мои настройки. Не нужна никакая база данных, никакие куки, никакое localStorage. Достаточно одного URL.

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

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

Читать далее

Топ 5 причин, когда JavaScript блокирует загрузку вашего сайта

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

На основе наблюдений я выделил 5 самых проблемных случая, когда JavaScript блокирует загрузку сайта. В статье вы узнаете, как с ними бороться.

Читать далее

Я нанял джуна в свой open source проект. Вот что получилось

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

Здравствуйте, товарищи! Сегодня у нас будет не техническая статья. Я расскажу об одном нестандартном кейсе из своей практики, суть которого отражена в заголовке.

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

Как обычно: все имена вымышлены, а совпадения случайны...

Ну давай, расскажи мне!

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

Разработали кастомный модуль Битрикс24, чтобы Сбер маркетинг узнал реальный вклад каждого из 1300+ сотрудников

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

Решение на Битрикс24: как мы помогли С‑Маркетингу узнать реальный вклад каждого из 1300+ сотрудников

Цели в блокнотах, Excel и «в голове» превращают стратегию компании в пазл без картинки. Особенно, если речь идет о бизнесе, где больше тысячи сотрудников. Для С-Маркетинга мы собрали этот пазл в единое решение на Битрикс24: сделали постановку и оценку целей прозрачными, а премии и повышения — аргументированными.

Читать далее

Жизнь как коробка с печеньками: что скрывают cookie-баннеры

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

Вы точно их видели — и не один раз. Баннеры с cookie за последние годы стали обычным делом. Разберём, что такое cookie-баннер, как он работает и почему часто мешает пользователю. Если вы маркетолог или управляете сайтом и не понимаете, зачем на нём нужен баннер с cookie — эта статья всё объяснит. Детали под катом.

Читать далее

EAV Bundle

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

Искал реализацию EAV (Entity-Attribute-Value) паттерна на PHP или Symfony и не нашел. Типичная задача, но, на удивление, нет таких библиотек. Решил сделать свою [EAV bundle](https://github.com/maxkain/eav-bundle). Есть достаточно подробная документация...

Читать далее

URLPattern теперь доступен в Baseline

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

API URLPattern официально стал базовой возможностью и доступен во всех основных браузерах с сентября 2025 года. Однако он может не работать на старых устройствах или в старых браузерах. Узнать больше.

Когда требуется функциональность, реагирующая на изменения URL, часто приходится писать сложные регулярные выражения или подключать сторонние библиотеки для маршрутизации. Теперь, когда URL Pattern API вошел в Baseline, у нас появилось стандартное, мощное и универсальное решение для этой задачи.

Читать далее

Безопасный доступ к внутренним сервисам: Keycloak, OAuth2 и немного Nginx‑магии

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

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

Изначально решение виделось простым — настроить Nginx и прописать правила маршрутизации. Ключевые трудности скрывались в деталях: тонкой настройке редиректов, работе с access token и интеграции с бэкенд-сервисами, потребовавших значительного внимания.

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

Читать далее

VS Code без боли: как я вернул фичи WebStorm для Angular-разработки

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

Решил мигрировать с WebStorm на VS Code, но обнаружил, что нет поддержки автоимпорта Angular-компонентов. В WebStorm это работало из коробки — начинаешь писать <app-, IDE сразу подсказывает компоненты и автоматически добавляет импорт. В VS Code такого не было.

На первый взгляд задача выглядела несложной — пару регулярок накидать и можно сделать своё решение.

Но пока я разбирался с регулярками, Angular-разработчики выпустили официальную поддержку: добавили импорты на автокомплит и диагностику. Можно было опустить руки, но официальная реализация оказалась неидеальной, и у меня было несколько идей фич, которые позволяют сохранить актуальность проекта и приблизить опыт работы к WebStorm.

Читать далее

SmileFace. Когда нейросеть улыбается тебе в ответ

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

SmileFace — игра, в которой нейросеть угадывает эмоции

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

Улыбнуться ИИ

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