Обновить
436.75

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

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

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

Создание кастомного интерактивного одностраничного минисайта с ИИ без платных сервисов

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

У любого последователя создания nocode сайтов может возникнуть проблема: хочу создать то‑то, но у сервиса нет этой функции, при этом сервис прекрасный: хорошая цена, обширная функциональность, доступность эксклюзивных функций и т. д. То есть менять на другой нет смысла, но того что я хочу — нет.

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

Спойлер: Получилось

Читать далее

Давайте сделаем крупное приложение на Flask (язык Python)

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

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

Читать далее

Основы тестирования React-приложений через Cypress

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

Привет, Хабр! Сегодня рассмотрим как автоматизировать тестирование React-приложений с инструментом Cypress.

Читать далее

История оптимизации Python сервиса: пара простых системных улучшений

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

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

Читать далее

Как мы помогли клиентам автоматически настраивать программы для работы с КЭП

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

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

Я Андрей Чеканов, ведущий инженер-программист и разработчик в Контуре. В статье расскажу, как мы создавали это решение и почему не все получилось сразу.

Читать далее

12 важных веб-сайтов, о которых должен знать каждый программист

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

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

Читать далее

10 certain indicators of a well-done UX design

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

UX design is the backbone of any digital product like an app or a website. It’s like a “dark horse” of a product: it’s something that is not always visible to a naked eye, but without it a product would be very hard or even impossible to use. In the meantime, it’s very easy to tell apart an optimized, well-done UX from a poorly implemented one. The latter can not only turn users away from a product, but also make a negative impact on the brand perception as a whole, as it plays a great role in customer satisfaction. Of course, each product has its own UX quality criteria, as it depends on different factors like the theme of a product, age of the target audience and so on. But there are also a few general indicators of a well-done UX that are applicable to any product no matter what. Let’s discuss them:

Читать далее

DRY-фреймворк: как сократить HTML-код и писать только на CSS

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

Привет! Я Толя, Frontend-разработчик в Selectel. В мире фронтенда есть «острый недостаток» фреймворков, поэтому я, как и 90% JavaScript-разработчиков, решил разработать собственный. В тексте расскажу, как «запихать» HTML-элементы в CSS и не испортить проект. Читайте до конца — вас ждет неожиданный сюжетный поворот.
Читать дальше →

Настройка аутентификации с одноразовым паролем в OpenAM

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

Аутентификация с паролем является, пожалуй, самым распространенным методом аутентификации. Но она не является достаточной надежной. Часто пользователи используют простые пароли или используют один и тот же пароль для разных сервисов. Таким образом пароль пользователя может быть скомпрометирован. Для увеличения безопасности в процесс аутентификации добавляют второй фактор. (Two Factor Authentication, 2FA). Второй фактор в аутентификации это дополнительный уровень защиты учетной записи. Помимо логина и пароля для аутентификации нужно ввести код из SMS, ввести биометрические данные, использовать аппаратный токен и так далее. Таким образом, даже если пароль учетной записи будет скомпрометирован, злоумышленник не сможет получит доступ к учетной записи, т.к. при аутентификации требуется пройти еще один уровень защиты. В данной статье мы настроим аутентификацию в OpenAM с использованием одноразовых кодов, сгенерированных от времени - Time-based One-Time Password Algorithm (TOTP,  RFC 6238).

Читать далее

Формат описания идентификатора зависимости в JS DI

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

Эта статья для тех, кто знает, что такое “внедрение зависимостей” и имеет практический опыт его использования. Меня зовут Алекс Гусев и я являюсь автором библиотеки “@teqfw/di”. Цель моей библиотеки - дать возможность использовать функционал “внедрение зависимостей через конструктор” в проектах на JS (фронт и бэк) и TS (бэк). Минимальной единицей внедрения является отдельный экспорт es6-модуля. Поэтому библиотека не может использоваться с модулями CJS или UMD.

В основу внедрения зависимостей заложена идея о том, что вместо статического связывания исходного кода на этапе написания (через import) применяется динамическое связывание объектов программы в режиме выполнения. В моей библиотеке это достигается за счёт размещения в коде конструкторов (или фабричных функций) инструкций по созданию нужных им зависимостей, которые интерпретируются Контейнером Объектов при работе программы и на основании которых загружаются нужные исходники и создаются нужные зависимости.

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

Читать далее

Программное создание материалов с пользовательскими полями в Joomla 5+

Время на прочтение21 мин
Охват и читатели838

С помощью материалов Joomla на сайте можно сделать не только контентный сайт-статейник или новостник, но каталог, простую доску объявлений и т.д. Начиная примерно года с 2016 очень много трафика из поисковиков уходит в соц.сети, стриминговые платформы, мессенджеры. Много контента стало создаваться напрямую в интерфейсе, например, Telegram. И в связи с этим встаёт вопрос об автоматическом наполнении сайта контентом из соц.сетей и мессенджеров. Для этого как раз и нужно знать как создавать материалы в Joomla 4 / Joomla 5 и старше программным способом.

Читать далее

Computed сигналы и ChangeDetection — подробный разбор

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

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

Для многих моих коллег сигналы стали чем-то мистическим. С одной стороны, код с ними стал выглядеть элегантнее, с другой была обнаружена проблема с пониманием внутренних механизмов их работы. В частности, загадочно выглядели computed сигналы, в которых в отличие от хуков React не прописываются зависимости напрямую. Также возникали вопросы связанные с детекцией изменений. В отличие от Observable и async pipe, который использует напрямую ChangeDetectorRef, сигналы могут вызываться в шаблоне, вызывая, при этом, его изменения.

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

Читать далее

Руководство по использованию Signal в Angular 17

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

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

Читать далее

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

Хостинг серверов для сайта. Сравнение недостатков VPS провайдеров. Антирейтинг 2024

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

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

Приступим! 

Читать далее

Все, что вы хотели знать про иерархию инжекторов в Angular

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

Привет. Меня зовут Дмитрий, я фронтенд-разработчик в компании «Цифровая индустриальная платформа». В своей работе мне часто приходится использовать Dependency Injection (DI) в Angular. Это мощный и популярный инструмент, который упрощает работу с зависимостями в наших приложениях. Он позволяет легко интегрировать необходимые сущности в компоненты, упрощает процесс тестирования и поддерживает принцип инверсии зависимостей. Однако часто мы не используем все возможности DI, потому что не знаем, как он работает под капотом. Давайте разберемся, как функционирует DI, что такое иерархия инжекторов и какие изменения принесла версия Angular 14.

Читать далее

Что такое MLSecOps, или Как безопасность искусственного интеллекта стала заботой DevSecOps

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

Пока все повально занимаются внедрением ML в SecOps, мы пошли дальше и стали внедрять SecOps в ML. Я Светлана Газизова, работаю в Positive Technologies директором по построению процессов DevSecOps. Кстати, мы знакомы, если вы читали мою статью о том, кто такие специалисты по безопасной разработке и где на них учиться.

Что такое MLSecOps?

Аутентификация в SPA приложении через OpenAM используя OAuth2/OIDC

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

Данная статья будет полезна разработчикам браузерных (SPA) приложений, которые хотят настроить аутентификацию пользователей. Для аутентификации будет использоваться OAuth2/OIDC протокол c PKCE. В качестве сервера аутентификации будет использоваться сервер управления аутентификации с открытым исходным кодом OpenAM.

Читать далее

Пожалуй, самый простой способ спасти ваше .NET-приложение, или Prometheus (и не только) спешит на помощь

Уровень сложностиСредний
Время на прочтение32 мин
Охват и читатели12K
Существует множество возможных проблем приложений, которые удается заметить лишь с опозданием. Особенно когда релиз уже состоялся… К счастью, существует пара ключевых инструментов, которые выручают почти в любой ситуации, — и вряд ли найдется что-то проще.



Меня зовут Александр Пугач, я — Senior .NET Developer в проекте Data Warehouse «Лаборатории Касперского» (да-да, вы могли не знать, но у нас в компании широко используются .NET и «шарпы»).

В этой статье я расскажу, как работать с метриками в .NET на примере OpenTelemetry и Prometheus — систем, которые помогают отслеживать проблемы в работе приложений и быстро на них реагировать, обеспечивая стабильную и отказоустойчивую работу сервисов.

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

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

Собеседование в энтерпрайз

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

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

Читать далее

Простые приёмы, которые сделают ваш код нагляднее

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

Упорядоченный, опрятный, хорошо написанный для восприятия код помогает быстрее выявлять случайные ошибки, и позволяет глазам быстрее "парсить" код, что в целом ускоряет время выполнения задач. В этой статье я, Андрей Рик, fullstack-разработчик с 10+ лет опыта коммерческой разработки, рассказываю как и зачем писать опрятный код.

Читать статью

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