Как стать автором
Обновить
399.69

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

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

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

Сафари и полужирный шрифт

Время на прочтение1 мин
Количество просмотров1.1K
Многие успели установить себе safari для windows и увидеть проблемы с полужирным шрифтом на хабрахабре и многих других сайтах.

Сегодня обнаружилось решение проблемы

Разработка веб-приложений: наша методика

Время на прочтение1 мин
Количество просмотров2.2K
Возникла идея написать статью по разработке веб-приложений на основе собственного (небольшой команды меньше 10 человек) опыта. Тезисы:

1. Набросок интерфейса
— что такое набросок интерфейса и зачем он нужен;
— блокнот и ручка против Visio и InDesign;
— участие заказчика в проектировании интерфейса;
2. Интерфейс
— интерфейс определяет модель;
— где заканчивается интерфейс и начинается дизайн;
— разработка: от важного — к более общему;
— почему мы перестали бояться изменений;
3. Программирование
— программирование с готовым интерфейсом;
— зачем нужен настоящий контент;
4. Дизайн
— почему макулатуры стало меньше;
— почему работать с дизайнером стало проще;
5. Готовый проект

Интересна ли кому-нибудь подобного рода публикация? Каким образом лучше подавать информацию: по частям (проще обсуждать) либо всю статью целиком (удобней читать и проще воспринимать)?

P.S. «Наша методика» значит «мы ее используем», а не «мы ее придумали» :)

bendingunit22 и HabraCurillo

Веб 2.0 в малом бизнесе

Время на прочтение3 мин
Количество просмотров1K
Веб 2.0 в малом бизнесеЕсли сегодня предложить интернет-аудитории ответить на вопрос «Слышали ли вы о Веб 2.0» подавляющее большинство ответит утвердительно. Однако если попросить этих людей назвать несколько проектов, применяющих технологии Веб 2.0 в бизнесе, мало кто из них назовет хотя бы один такой проект. И неудивительно, каждый день появляются новые публикации о проектах, ориентированных на развитие сообществ. Есть публикации и о решениях, использующих данные сторонних популярных проектов. А вот найти публикации об использовании потенциала Веб 2.0 в корпоративной инфраструктуре не так-то просто. В результате разработчики зачастую просто «не видят» Веб 2.0, примеряя его на корпоративные решения. Я решил попробовать рассмотреть в свете тенденций Веб 2.0 технологический процесс хорошо знакомый разработчикам, типовой технологический процесс студии веб-разработок.

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

«Взлом» Telegram-игры или минусы вайбкодинга

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

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

Читать далее

Личный ИИ-ассистент на ваших данных. Часть 2: Веб-интерфейс, авторизация и стриминг ответов от ИИ

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

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

В этой части статьи мы шаг за шагом превращаем консольную заготовку из первой части в полноценный веб-сервис:
— реализуем авторизацию
— создаём веб-чат с выбором нейросети
— интегрируем всё через FastAPI
— готовим к деплою

Если вы хотите, чтобы ваш ИИ-ассистент выглядел и работал как настоящий сервис — поехали!

Читать далее

Знакомство с Web Locks API

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

Представьте оживлённый перекрёсток без светофоров и знаков приоритета. Машины едут в разных направлениях, кто-то пытается проскочить первым, кто-то резко тормозит. Рано или поздно это приведёт к аварии.

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

Долгое время разработчики обходились кустарными решениями — флагами в localStorage, хитрыми setInterval и т.д. Но с появлением Web Locks API у нас наконец появился стандартный способ расставить приоритеты в этом хаосе.

Web Lock API — это механизм, позволяющий скриптам, находящимся в рамках одного orign, блокировать доступ к ресурсу, удерживать блокировку пока выполняется необходимый код, а затем разблокировать ресурс, чтобы другие части программы могли получить к нему доступ.

Читать далее

Пробуем Codex CLI от OpenAI для доработки ХрюХрюКара

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

Пару дней назад я опубликовал статью про ХрюХрюКар - телегам-бот для борьбы со стоянкой автомобилей на зелёных зонах. Проект с открытым исходным кодом.

За два дня ко мне обратилось несколько сторонников с просьбой добавить их города. Но вот незадача: у меня была возможность через админ-панель Django править данные в базе, но об этом кеш сервера не узнает (основной бекэнд на Go). В результате приходилось добавлять данные и перезагружать контейнеры с go-бекэндом вручную.

Основные серверы ХХК уже имели сторы, которые получают и обрабатывают апдейты, прилетающие через redis.

По сути, оставалось внести правки в часть django-бэкенда, чтобы обрабатывать сигналы pre_save и pre_delete, сериализовать данные и отправлять их в нужный канал редиса.

Решил поручить эту задачу Codex CLI, которую вчера OpenAI представили нам с вами. 

Читать далее

Создание анонимного чата в Telegram: Бот с MiniApp интерфейсом. Часть 1 — Бэкенд на FastAPI, Aiogram, Redis и Centrifugo

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

Это первая статья из цикла, посвященного разработке телеграм-бота с MiniApp для случайных чатов. В этой части мы сосредоточимся на создании бэкенда, используя современные технологии: FastAPI для разработки API, Redis для хранения данных в реальном времени и Centrifugo для обеспечения мгновенного взаимодействия между пользователями. Сегодня мы подробно разберем архитектуру проекта, настройку серверов и реализацию логики бота.

В следующей статье мы переключимся на фронтенд и займемся разработкой MiniApp с использованием фреймворка Vue.js. Это позволит создать интуитивно понятный интерфейс для пользователей, где они смогут настраивать параметры поиска собеседника и общаться в режиме реального времени (Real time).

Читать далее

Как внедрить веб-решение для оптимизации процесса закупок для крупного производителя молочной продукции в Беларуси

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

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

В 2019 году к нам обратилась всем известная компания Danone. Задача: цифровать и автоматизировать процесс закупки продукции.

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

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

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

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

То есть простое веб-решение. Но с какими проблемами мы столкнулись.

Читать далее

System Design Interview. Шаблон прохождения собеседования этого этапа

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

Недавно я собеседовался в Амазон и Майкрософт в офисы в Испании (так как я тут живу). Пока готовился много что понял, сейчас поделюсь.

Собеседование на проектирование систем.

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

Читать далее

Обработка ошибок Axios

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

Привет, Хабр! Меня зовут Алёна, я senior фронтенд-разработчик отдела разработки ПО для розничного бизнеса в Райффайзенбанке. Недавно передо мной встала задача улучшения пользовательского опыта обработки ошибок запросов к бэкенду. Я решила комплексно исследовать эту тему на примере HTTP-клиента Axios.

Если при отправке запросов с помощью Axios возникает ошибка — клиентское приложение получает аргумент, который может быть экземпляром объекта, производного от системного класса Error, или любым типом. Он может содержать много информации и не всегда понятно, что самое важное для определения типа исключения и способа обработки. Поэтому я выделала 4 категории ошибок запросов, сделанных при помощи Axios, которые нужно по-разному интерпретировать.

Читать далее

Магический метод работы с формами

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

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

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

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

Меня зовут Владимир Кирилкин, я техлид в Цифровом СИБУРе, в команде Индустрии 4.0. Мы разрабатываем продукт «Видеоаналитика на производстве», и о наших задачах уже писали на Хабре.

Мы подошли к задаче нестандартно: вместо заранее заданных форм на фронте реализовали их автоматическую генерацию с использованием JSON-схем и немного ✨магии✨.

Наши сервисы построены на Python и React, но предложенный подход можно адаптировать и для других технологий — правда, с чуть меньшим количеством ✨магии✨.

Читать далее

CSS Custom Functions уже на подходе…

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

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

Читать далее

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

Как меняется поведение и метрики пользователей при редизайне продукта

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

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

Читать далее

Как и зачем проводить кастдевы при разработке SaaS-продукта (с примерами из опыта)?

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

Предположим, у нас есть проект или идея SaaS продукта. Возможно мы уже разработали первую версию, у нас есть пользователи и в целом мы куда-то движемся. Как понять, что именно разрабатывать дальше, чтобы продукт рос, а пользователи платили? Как понять, какую именно обратную связь принимать от пользователей?

Читать далее

Оптимизация запросов в DjangoORM: когда и как использовать Raw SQL

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

В рамках данной темы будут рассмотрены способы оптимизации запросов в DjangoORM. Основное внимание будет уделено использованию сырых SQL запросов, существующих для этого инструментов, преимуществам и недостаткам.

Читать далее

Новогодний квиз по вашему git log. Пятничный пост

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

Наступает конец года. Впереди последний релиз, код-фриз, корпоратив и подведение итогов. Я накидал пару командных HTML игр (например, квиз), основанных на логах вашего репозитория (для git). Наливаем чай или пиво. Собираем команду. Играем, смотрим ачивки. Исходники тут

Читать далее

Typescript для React

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

Typescript - сложный язык, но большинству разработчиков не нужно знать все его тонкости, чтобы быть эффективными в своей работе.

Это то, что я считаю минимальным набором знаний по тайпскрипту для эффективной разработки продукта на React.

Основные принципы, которые мы здесь используем:

Типизируйте входные данные, предсказывай результат

Минимизируйте шум в кодовой базе

Ошибки должны отображаться как можно ближе к коду, который их вызвал

Читать далее

Честный взгляд на Spring Data JPA

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

Spring Data JPA считается швейцарским ножом для работы с БД в Java. Однако Spring Data JPA не заслуживает своего триумфа и вот почему...

Читать далее

Ошибки при работе с tailwindcss

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

Рассмотрим распространенные ошибки которые допускают разработчики при работе с tailwind и пути их решения.

Читать далее