Как стать автором
Поиск
Написать публикацию
Обновить
522.47

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

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

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

Как я создал клон Pinterest с использованием Vue 3 и FastAPI

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

👋 Привет, Habr!

Вы когда-нибудь пытались найти качественный open-source клон Pinterest — с real-time функционалом, полноценной архитектурой, удобным UI и современной технологической основой? Я — да. И не нашёл. Поэтому решил создать свой.

Представляю вам Pinterest Clone — мой pet-проект, над которым я работал в одиночку 4 месяца, чтобы воссоздать не просто копию, а полнофункциональную платформу с реальным пользовательским опытом, максимально приближённым к оригиналу.

Читать далее

FastOpenAPI: автодокументация OpenAPI для разных фреймворков на Python

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

Всем привет! Меня зовут Никита Рыженков, и я хочу поделиться опытом разработки библиотеки FastOpenAPI. Это инструмент, который приносит удобный стиль маршрутизации FastAPI и автоматическую документацию OpenAPI в целый ряд Python-фреймворков. Идея родилась из личной боли: в одном проекте приходилось поддерживать OpenAPI-документацию сразу в нескольких фреймворках, и я устал дублировать решения под каждый из них. Вдохновившись лаконичностью FastAPI, я решил создать унифицированный подход для Flask, AioHttp, Sanic, Falcon, Starlette, Quart, Tornado – назвал его FastOpenAPI​. В этой статье расскажу, какие проблемы решает FastOpenAPI, как он устроен внутри и как им пользоваться с примерами кода под каждый поддерживаемый фреймворк.

Читать далее

Попросили нейросеть задать нашим программистам необычные вопросы о разработке в финтехе

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

Но это не простые разработчики, а те, кто будет выступать завтра с докладами на нашем ежегодном бесплатном митапе Frontend Mix. 😎 Ребята расскажут про рефакторинг приложений за 10 секунд, стандарты тестирования во фронтенде, анимацию и уязвимости в финтехе. Ссылка на страницу конференции и регистрацию будет ниже, а пока оценим ответы на вопросы ИИ. 👇

Читать далее

Chotto UI — набор компонентов для чатов на Vue3

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

Пытаясь подражать слогу классика, можно сказать, что "все чаты в целом одинаковы, но каждый реализует что-то свое".

так ли это? посмотрим.

TL, DR: далее рассказываю, что мы делаем свой UI набор компонентов для чата, даю ссылки и приглашаю присоединяться к проекту.

Читать далее

SSG своими руками

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

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

Сегодня я хочу поделиться с вами руководством, как реализовать Static Site Generation (SSG) в React без использования сторонних фреймворков, таких как Next.js, TanStack Start, React Router и им подобных. Сразу оговорюсь: я не считаю их чем-то «плохим» и не агитирую против их применения. Всё гораздо проще: иногда по тем или иным причинам нет возможности использовать эти инструменты, или самостоятельная реализация оказывается предпочтительнее из-за количества изменений в кодовой базе.

Если вам интересна тема стратегий рендеринга веб-приложений, то прошу под кат.

Читать далее

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

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

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

Читать далее

Как отправить много страниц сайт на переиндексацию в Google Indexing API и автоматизировать процесс

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

Переиндексация URL в Google — важный инструмент в руках SEO-специалиста и маркетолога. Если вы внесли изменения на сайте, добавили новые страницы или изменили структуру — сообщить об этом Google можно руками в интерфейсе. Примерно вот так:

Читать далее

Пиши простой код

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

И это решит 95% проблем типичного стартапа. Как-то так повелось, что по всему СНГ и его окрестностям на работу набирают зумеров с колоссальным опытом в три года, и они начинают создавать идеальные архитектуры. Да, каждый из вас, как только получает возможность взять на себя хоть малейшую ответственность, сразу вспоминает все прочитанные и не прочитанные книги и пилит свою уникальную архитектуру, непохожую ни на что.

Читать далее

Mock-объект в рабочем коде, или как тестовый двойник помог решить проблему излишне связанного кода

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

На работе была поставлена задача: в главное веб-приложение нашей фирмы добавить метод формирования бланка в формате PDF «как вот в том микросервисе».

Форма бланка регулярно изменяется, и копировать её в веб-приложение означало нарушить принцип DRY («Не повторяйся») и обречь себя на постоянную двойную работу. Поэтому я решил оставить генерацию бланка в «том микросервисе».

«Тот микросервис» написан на PHP с использованием фреймворка Laravel, содержит большое число доменных объектов, экземпляры которых хранятся в БД MySQL, и имеет развитую систему API для обращения к своему функционалу.

И можно было добавить в него ещё одну точку доступа API, которая бы получала данные и на их основе формировала и возвращала бланк.

Проблема возникла из-за «неприлично» высокой связанности объектов в «том микросервисе». Так, в шаблоне, на основе которого строился бланк, использовались не просто примитивные типы данных, а объект-форма. И шаблон обращался к методам-геттерам этого объекта. А объект, в свою очередь, использовал другой доменный объект в своём конструкторе для заполнения полей.

Читать далее

Сказка. Слёзы бэкендера, или что такое примитивы

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

В далёком Контуровском царстве, в чудесном Фокусовском государстве жила-была дружная команда разработчиков. Денно и нощно они создавали интерфейсы для поиска надёжных контрагентов, возводя величественные «палаты» функциональности и прокладывая пути обновлений. Но однажды, дабы ускорить доставку фич и снизить нагрузку на фронтендеров, было решено привлечь необычных существ — примитивов...

Читать далее

Вы не знаете CSS. Мои вопросы о CSS с ответами. Часть 3

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

Хабр, привет! Я стабильно пишу здесь о CSS. Мне радостно, что моя работа вам полезна. Но хочется что-то нового. Вызывающего споры. В общем, я пришёл к формату статей в виде вопрос-ответ. Вопросы будут те, что я спрашиваю на интервью. Так что у вас будет повод сказать: «А зачем это надо?».


При составлении вопросов я хотел проверить понимание базовых моментов, которые есть в вёрстке любого проекта. Ещё будут вопросы на знание более редких аспектов и «новинок» в CSS. В общем, я хочу вас завалить, чтобы казаться супер умным! (здесь ирония).


Пожалуйста, не воспринимайте мои вопросы серьёзно. Давайте просто весело проведём время. Плюс попробуем узнать что-то новое. Ведь у каждого вопроса будет мой ответ. И вы тоже можете оставить свой в комментариях. Я обязательно буду их читать.


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

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

React Reconciliation: скрытый механизм, управляющий компонентами

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



❯ Механизм согласования


В моих предыдущих статьях (1, 2) я подробно рассматривал, как работает React.memo, а также делился более эффективными подходами к оптимизации производительности с помощью компоновки. Однако для глубокого понимания работы React необходимо разобраться в основном механизме, лежащем в основе всех этих оптимизаций – алгоритме согласования (reconciliation).


Согласование – это процесс, в результате которого React приводит DOM в соответствие с деревом компонентов. Именно этот механизм позволяет реализовать декларативный подход к программированию на React: вы формулируете свои намерения, а React самостоятельно определяет, как выполнить эти намерения наилучшим образом и с наименьшими затратами.

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

Kubernetes и микросервисы для интернет-магазина

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

История Kubernetes

 7 июня 2014 года был выпущен первый выпуск Kubernetes

Kubernetes позволяет разработчикам самостоятельно разворачивать приложения, а системным администраторам, автоматически отслеживая
и перемещая эти приложения в случае аварийного сбоя оборудования

Kubernetes на греческом языке означает «кормчий» или «рулевой» (лицо, держащее рулевое колесо корабля).

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

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

 Основные понятия в Kubernetes

 Кластер – это несколько серверов, где нужно развернуть наше приложение.

Под (pod) – минимальный элемент развертывания в Kubernetes, который состоит из одного или нескольких контейнеров, работающих на одном компьютере. Контейнеры внутри пода работают по одному IP-адресу
и могут обмениваться информацией через доступную в контейнере директорию (том, volumes).

Сервисы (Service) – соединяет поды, которые объединяются в группы
с постоянным IP-адресом и балансирует нагрузку между ними.

Читать далее

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

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

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

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

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

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

Читать далее

Двойной Backend, премьера секции для техлидов и выступление легендарного Михаила Гельфанда: что еще будет на DUMP 2025

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

Уже на этой неделе, 25 апреля в пятницу, в Екатеринбурге пройдет DUMP — одна из самых масштабных ИТ-конференций на Урале. В этом году у нас 11 тематических секций, включая новенькую TechLead, отдельный трек для круглых столов и воркшоп от Андрея Цветциха. Рассказываем детальнее о программе

Backend — пройдет в двух параллельных треках. Будет больше докладов, Андрей Цветцих проведет воркшоп «Паттерны асинхронного взаимодействия в распределённых системах», Юля Волкова поможет справиться со страхом триггеров, а Максим Стаценко покажет, как сделать максимально дешёвый Statefull процессинг с 1кк RPSа. Также обсудим за круглым столом, кто должен исправлять срочные баги, если работа над проектом уже закончилась...

Смотреть другие секции

Как создать приложение-агрегатор для ресторанов в 2025 году

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

В этой статье мы рассмотрим:

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

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

Читать далее

Как использовать любой CSS-фреймворк в вашем проекте — Часть 4

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

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

Читать далее

Как программисты делали куличи

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

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

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

Чтобы процесс пошёл быстрее, всю работу, конечно же, разбили на задачи и определили, кто и чем будет заниматься. Вован, Лёньчик и Гриша будут заниматься замесом теста. Александр и Олександр — изготовлением верхних украшений. Решили, что сверху куличи украсят белково-заварной помадкой по классике, но поверх добавят цветки из мастики и желатинового единорога, покрытого белым шоколадом. Маргарита, Вика и Октавия будут заниматься финальной сборкой, ну а курировать процесс будет Семён.

Читать далее

Бумер, джуниор и нейросеть

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

Настало время... интересных историй. Про то, как я заказал сайт и что из этого вышло. Спойлер — человек не справился, а нейросетка — да

Читать далее

Поведенческие факторы в поисковой системе Яндекс: влияние, стратегия и возможности оптимизации

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

SEO — это не просто механическое следование алгоритмам поисковых систем, а настоящая игра на грани аналитики, психологии пользователей и технического мастерства. Одним из ключевых факторов успешного продвижения в Яндексе являются поведенческие факторы (ПФ), определяющие, насколько сайт удовлетворяет запросам пользователей.

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

Читать далее

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