Обновить
426.34

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

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

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

Хоп, Хлоп, и MVP готов

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

Здравствуйте, меня зовут Дмитрий Карловский и я.. как 30 лет назад вошёл в IT, и всё никак не могу из него выйти. И всё это время я не только работал работу, но и точил свой набор топоров, благодаря которому путь стартапа от идеи до прода сокращается с минимум недели до максимум часа.

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

Ну 0_0

Гайд по деплою web-приложений для новичков. Часть 1. Shared-хостинг

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

В web-разработке процесс деплоя играет важную роль. Это ответственный момент (даже торжественный), когда все усилия, потраченные на написание и тестирование кода, воплощаются в "живое" приложение, доступное пользователям. Ведь для этого приложение и делается, чтобы им кто-то пользовался. Каждый разработчик, независимо от уровня и специализации, регулярно сталкивается с задачей деплоя. Это статья рассчитана на новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.

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

Читать далее

Пишем универсальный прототип бэкенд-приложения на python

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

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье.

Я бы хотел с вами поделиться своими наработками по теме бэкенд-приложений и предоставить вам шаблон-прототип, который, как мне кажется, может закрыть подавляющее большинство потребностей при их разработке.

Для написания прототипа я буду использовать FastAPIFastStream и dishka. Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах.

Ну что ж, приступим

FastAPI: веб-разработка на Python

Время на прочтение14 мин
Охват и читатели12K
image Привет, Хаброжители!

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

Билл Любанович рассказывает о тонкостях разработки с применением FastAPI и предлагает множество рекомендаций по таким темам, как формы, доступ к базам данных, графика, карты и многое другое, что поможет освоить основы и даже пойти дальше. Кроме того, вы познакомитесь с RESTful API, приемами валидации данных, авторизации и повышения производительности. Благодаря сходству с такими фреймворками, как Flask и Django, вы легко начнете работу с FastAPI.
Читать дальше →

Пример своего транспорта для Symfony Messenger

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

В процессе изучения Symfony Messenger мной было создано два самодостаточных примера, демонстрирующих его работу (описаны в отдельных статьях).

В каждом из этих учебных примеров в качестве транспорта сообщений для простоты была выбрана БД SQLite.
Готовой реализации транспорта именно для SQLite я не нашёл и пришлось её использовать через DBAL Doctrine.

И всё бы ничего, но внутренний перфекционист :-) нашёптывал, что использование целой Доктрины лишь для того, чтобы работать с одной-единственной таблицей с очередями сообщений — это явный перебор…

Бороться с затерроризировавшим меня внутренним перфекционистом ;-) я не стал и, решив поглубже разобраться с устройством транспорта сообщений в Symfony Messenger, создал такой транспорт для SQLite сам, с использованием PDO.
А заодно потестировал производительность самопального решения и решения на Doctrine (на HDD и на RAM drive).

Читать про SQLite транспорт для Messenger

Мой опыт миграции приложения на standalone-компоненты

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

Всем привет! Меня зовут Антон Горелов, я фронтенд-разработчик в Selectel. Заметил, что часто в сообществе при рефакторинге или написании приложения с нуля возникает вопрос применения одного из двух подходов. Первый — «все делаем через модули, они прекрасно работают, не надо ничего нового». Второй — «есть standalone-компоненты, супер, используем новый инструмент».

В этом тексте поделюсь своим опытом применения обоих подходов. Расскажу, что дают standalone-компоненты, на что стоит обратить внимание в процессе миграции и тестирования и когда использовать standalone, а когда стоит все же остаться на модулях. Материал будет полезен фронтенд-разработчикам уровня Junior+ и Middle. Ниже опишу сценарии, с которыми чаще всего сталкивался лично, и обобщу свой опыт.
Читать дальше →

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

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

Больше года я сравнивал обычные и виртуальные потоки в Java. На основе превью 19 версии JDK. Сравнение виртуальных и обычных потоков в Java. tldr: Чуда тогда не случилось, одинаковый код работает одинаково.

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

Читать далее

Мега-Учебник Flask Глава 13: I18n и L10n (издание 2024)

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

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

Начать изучение

Публикация web-карт с GeoServer: от установки до интеграции с Mapbox GL JS

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

Приветствую, хабравчане!

Это моя первая статья, и она посвящена GeoServer`у и его использованию в web-картах.

Статья ориентирована на людей, имеющих опыт публикации своих картографических проектов посредством HTML, CSS и JavaScript, и столкнувшихся с необходимостью хотя бы время от времени обновлять отображаемые данные. Статья будет полезна также и для тех, кто хочет узнать о более продвинутых методах работы с геоданными в web.

В рамках статьи будет рассмотрено:

Зачем нужен GeoServer?
Покупка домена, аренда сервера и их связка
Публикация собственного сайта с картой
Установка GeoServer и его использование с Mapbox GL JS.

Читать далее

Standalone в Angular

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

Angular, один из самых популярных фреймворков для разработки одностраничных приложений (SPA), постоянно развивается, добавляя новые возможности и улучшая существующие. Одной из таких новых возможностей стали Standalone компоненты, представленные в Angular 14.

Читать далее

Пишем веб-компонент для svg иконок

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

Всем привет! Сегодня мы рассмотрим один из вариантов интеграции svg иконок в наш фронтенд проект используя веб-компоненты. Основная идея компонента заключается в том, чтобы лениво подгружать в SVG спрайт иконки и переиспользовать уже загруженные иконки при необходимости. Сами иконки будем вставлять в разметке в виде <svg-icon name="arrow-angle-down"> нам понадобится всего сотня строк кода! Кому интересна реализация, прошу под кат!

Читать далее

Летающий Санта и танцующие снегири: опыт реализации и оптимизации CSS-анимации

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

Привет! На связи Кристина, фронтенд-разработчик в KTS.

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

Рассказываю, как создавала CSS-анимации для игры из внутреннего спецпроекта, какие SCSS-фичи использовала для оптимизации кода и как сделала CSS-анимации более производительными.

Читать далее

AOP в Golang: как рефлексировать, и почему вам не стоит этого делать

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

Я java-программист по профессии и алкоголик go-developer по зову души. И вот в один прекрасный день я подумал о том, что раз уж в Go есть пакет reflect, то должны быть и способы АОП, прямо как в java. Если вкратце, я захотел генерировать обертки для функций в рантайме, позволяя красиво оборачивать логи, мониторинги, трейсинги, и прочие довольно однотипные штуки, по аналогии с тем, как я проделывал это в java.

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

Читать далее

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

Магия динамического маппинга. Реализация универсальной обработки файлов нефиксированной структуры на Python

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

Привет! На связи Никита Ильин из Spectr, Backend-разработчик с опытом более 5 лет. 

Один из проектов, с которым мы работаем, — IBP-платформа для планирования и прогнозирования спроса и продаж в ритейле. В статье поговорим о конкретной реализации для одной из задач в рамках этой платформы на Python и Django. При этом сама концепция может быть реализована абсолютно на любом фреймворке или платформе: Spring, .NET, Laravel.

Узнать о магии больше

Оптимизация настроек Kafka кластера. Часть 3. Сравнительное тестирование, мониторинг и тонкая настройка Kafka кластера

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

Привет, Хабр! Представляю вам третью (заключительную) часть серии статей, посвященных оптимизации развертывания Kafka кластера (ссылка на первую и вторую части). Это перевод руководства от Confluent. Сегодняшняя статья посвящена сравнительному тестированию настроек и мониторингу Kafka кластера.

Читать далее

Новый комплексный подход к разработке в Bitrix на D7

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

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

Покажу как работать с bitrix cli внутри компонентов, покажу как писать тесты и browserlist, чтобы наш CSS и JS собирался согласно browserlist.

Покажу как возвращать через ajax именно компоненты Bitrix с их стилями и скриптами.

И напишем простой компонент на примере этого подхода.

Читать далее

Пайплайны в GitLab для микросервисов

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

Какие два самых любимых дела у программистов? Автоматизировать и переписывать на микросервисы. Так сложилось, что в нашу команду выделенных серверов тоже постучались микросервисы. Но в этой статье не будет плюсов и минусов архитектурных подходов. Вместо этого я расскажу про организацию CI для автоматизации сборки, тестирования и деплоя приложений.

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →

Используем REM для адаптива: комфортная резиновая вёрстка для всех устройств

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

Все верстальщики рано или поздно сталкивались с болью, которая заключается в адаптиве сайта под различные устройства. Существуют разные технологии, упрощающие подгонку размеров под определённые устройства, например, clamp(). Эта функция удобна, так как позволяет минимизировать использование брейкпоинтов, но у неё есть свои недостатки:

Читать далее

7 раз отрежь, один релизни. А/Б тесты статических сайтов

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

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

Прорабатывается ТЗ и задача отдаётся разработчикам. Затем новая версия тестируется и уходит конечным пользователям. На этом жизненный цикл идеи завершён. Теперь остаётся дождаться массива свежей аналитики и отпраздновать…

Однако эта идея изначально была обречена. Она была поддержана лишь схожими с её автором людьми. Однако эти люди не самая подходящая ЦА, а возможно и вовсе её редкие исключения. И есть только один гарантированный способ проверить гипотезу - проверить её именно на аудитории бизнеса. Но, не на всей. Этот способ называется А/Б тестированием.

И именно ему будет посвящена данная статья. От идеи до конкретной реализации тестирования на next.js (которую можно повторить и на других технологиях).

Читать далее

Почему какие-то сайты стоят 10 тысяч, а какие-то миллион?

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

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

Читать далее

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