Обновить
439.75

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

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

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

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 9

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

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


Сегодня мы рассмотрим следующие аспекты:

  • какие сюрпризы есть при использовании свойства display;
  • о чём нужно помнить при вёрстке кнопки «Показать пароль»;
  • зачем нужны подсказки с помощью атрибута aria-label при разметке областей навигации;
  • как можно переборщить с заголовками и какие проблемы будут.

Давайте начнём!

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

Как обеспечить цифровую доступность по всем правилам: опыт Яндекс Капчи

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

Привет! Меня зовут Павел Конон, я аналитик в команде Антиробота в Яндексе. Занимаюсь развитием инструмента капчи в команде Антиробота. Думаю из названия команды понятно, что мы работаем над системой онлайн классификации источников запросов — робот или человек.

Сегодня хочу рассказать о том, как мы решаем нетривиальную задачу: делаем нашу капчу более доступной для слабовидящих пользователей и при этом соблюдаем все требования безопасности и ГОСТ. С одной стороны нам нужно упростить прохождение капчи для людей с различными особенностями, с другой — оставить такую же сложность для роботов. Поэтому такие способы как упрощение заданий, проставление конкретному пользователю куки татем‑от‑капчи или возможность выбирать более подходящий тип задания, мы довольно быстро отклонили. И начали искать другие варианты.

Читать далее

Вопросы к собеседованию React (Junior level)

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

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

Читать далее

Docker для Angular-приложений: от простого к несложному

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

Привет, Хабр! Меня зовут Артём, я разрабатываю фронтенд систем управления сетью в YADRO. С Docker знаком давно и часто его использую. Но когда столкнулся с задачами, где недостаточно просто скопировать шаблонный Docker-файл и подправить пару строчек, решил больше погрузиться в эту тему. 

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

Читать далее

Гайд по деплою web-приложений для новичков. Часть 2. VPS и настройка окружения

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

Это статья - вторая часть небольшого сериала о деплое web-приложений. Написана для новичков, которые учатся разворачивать приложения на сервере и хотят узнать различные варианты, сравнить их и выбрать подходящий.

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

Читать далее

Мега-Учебник Flask Глава 23: Интерфейсы прикладного программирования (API) (издание 2024)

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

Это двадцать третья и последняя часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как расширить microblog с помощью интерфейса прикладного программирования (или API), который клиенты могут использовать для работы с приложением более прямым способом, чем традиционный рабочий процесс в веб-браузере.

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

Мега-Учебник Flask Глава 22: Фоновые задания (издание 2024)

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

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

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

Мега-Учебник Flask Глава 21: Уведомления пользователей (издание 2024)

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

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

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

Мега-Учебник Flask Глава 20: Немного магии JavaScript (издание 2024)

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

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

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

Мега-Учебник Flask Глава 19: Развертывание на контейнерах Docker (издание 2024)

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

Это девятнадцатая часть серии мега-учебника Flask, в которой я собираюсь развернуть Microblog на контейнерной платформе Docker.

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

Мега-Учебник Flask Глава 18: Развертывание на Heroku (издание 2024)

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

Это восемнадцатая часть серии мега-учебника Flask, в которой я собираюсь развернуть Microblog на облачной платформе Heroku.

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

Мега-Учебник Flask Глава 17: Развертывание на Linux (издание 2024)

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

Это семнадцатая часть серии мега-учебника Flask, в которой я собираюсь развернуть Microblog на сервере Linux.

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

Докер контейнеры и прикладная некромантия

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

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

Будет два живых примера:

Медиавики, вики-движок на PHP, древняя инсталляция - обновляем с версии 1.24 от сентября 2014 года.

Забавный инструмент для генерации комиксов в стиле xkcd, написанный на Node.JS, и в последний раз обновлявшийся в марте 2013 года. Поднимаем и исследуем. Будут внезапные сюжетные повороты, и трагическая концовка.

Интересно, как воскресить эти артефакты древности? Тогда погнали!

Читать далее

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

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

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

Привет, Хабр! Я — Марина, специалист по продвижению сайтов в Selectel. В тексте расскажу, как правильно настроить SEO-параметры для разных типов веб-ресурсов на этапе их создания. Пригодится вебмастерам, маркетологам и всем, кто работает с сайтами.

Ранее мы выпустили текст о том, как разработать HTML-шаблон страницы с учетом SEO. Моя статья ориентирована больше на оптимизацию разных типов сайтов, а не код.
Читать дальше →

Playwright и Allure как хорошая практика для разработки веб-приложения

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

Разработчики вечно ищут баланс: как выпускать фичи быстро, качественно и желательно небольшой командой. Наш рабочий рецепт – это фронты + e2e-тесты. Рассказываю, как мы используем автотесты и визуализируем их результаты.

Читать далее

Разработка Telegram Web App с помощью HappyX и telebot

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

В этой статье я расскажу вам, как можно с помощью Nim разработать Telegram Web App, используя HappyX и telebot.

Читать далее

Как я создал сайт на базе GitHub Pages: история новичка и ChatGPT

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

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

Читать далее

Кратко про классную библиотеку для создания веб-приложений в Python — Tornado

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

Сегодня мы рассмотрим библиотеку для создания веб-приложений на Python - Tornado.

Tornado был разработан в компании FriendFeed, которая позже была приобретена Facebook в 2009 году. Основная идея создания Tornado заключалась в высокой производительности и масштабируемости при обработке большого числа одновременных соединений. Этого удалось достичь с помощью асинхронности.

Читать далее

Микросервисы в представлении среднего разработчика, и как всё на самом деле

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

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

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

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

погрузиться в микросервисы

Как я положил продакшен базу на выходных

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

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

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

Сам деплой был необычным, потому что мы выкатывали большое изменение для обработки заявок основного договора (до этого работало только раннее бронирование). Туда входило и много кода и около 40 миграций и обновления зависимостей и новая конфигурация. Но мы точно не добавляли код, который бы грохал половину базы (как нам тогда казалось, хаха).

Дальше мы полезли изучать код на предмет подозрительных вещей:

Читать далее

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