Веб-дизайн, UX и конверсия
Типографика, макеты, дизайн-системы и удобные интерфейсы для веба.
56 материаловМатериалы для проекта «Информационный сайт ProfessorWeb» объединяют несколько направлений. Начните с разделов ниже.
Типографика, макеты, дизайн-системы и удобные интерфейсы для веба.
56 материаловHTML, CSS, JavaScript, TypeScript, компоненты и статические сайты.
397 материаловДомены, хостинг, серверы, автоматические выпуски и сопровождение.
121 материалБыстрая загрузка, тестирование, доступность и защита данных.
155 материаловТехническое SEO, запросы, Google Search Console и Яндекс Вебмастер.
71 материалСобытия, Метрика, GA4 и измерение результатов сайта.
45 материаловПубликации, соцсети, видео, распространение и работа с репутацией.
26 материаловEmail, коммуникации и жизненный цикл клиента.
17 материалов12 уроков: Доставка: события публикации через RabbitMQ
Договор проекта Доставка, идентичность события и различие команды, факта и обработки.
AMQP-соединение Pika, объявления exchange и очередей, жизненный цикл и учебная устойчивость.
Публикация v1-события, message_id, persistent-режим и граница между отправкой и подтверждением.
Topic и direct exchanges, bindings, копии события и отличие подписки от распределения работы.
Manual ack, unacked-доставка, prefetch и связь подтверждения с локальным результатом обработчика.
Подтверждение ответственности брокера, mandatory-return и повтор с прежним eventId.
Классификация временных ошибок, TTL retry-очереди, ограничение попыток и адресный возврат consumer.
Сохранение несовместимого тела, исчерпанный retry, причины отказа и правила повторного ввода события.
Транзакционная квитанция eventId, конфликт содержимого и защита проекции от старой редакции.
Повторное создание connection/channel, heartbeat, prefetch и предметный порядок при параллельных получателях.
Одна транзакция материала и события, устойчивый ключ команды и relay с подтверждением брокера.
Диагностика pending, ready, unacked, retry и dead, управление остановкой и эксплуатационные границы архива.
Создаём «Блокнот»: изменяемые записи в IndexedDB, атомарную локальную очередь и собственный серверный контракт. Учимся сохранять текст без доступной сети, повторять стабильное намерение, получать журнал по cursor и разрешать конфликт двух редакций вручную. IndexedDB здесь хранит данные; серверная синхронизация реализована приложением. Service worker, кеш оболочки и CRDT остаются темами других серий.
Разделяем локальную заметку, серверную ревизию и ещё не подтверждённое изменение.
Открываем три object store и связываем обновление схемы с жизненным циклом вкладок.
Сохраняем форму и намерение отправки одной транзакцией, сообщая об успехе после complete.
Отделяем идентификатор заметки от идентификатора отправки и сохраняем снимок до подтверждения.
Реализуем push/pull контракт с проверкой исходной ревизии и сохранением результата операции.
Применяем серверный ответ к отправленной операции, не теряя правку во время запроса.
Сохраняем страницу серверного журнала и её cursor одной транзакцией.
Разрешаем конфликт явным выбором, сохраняя серверную revision и новый ID намерения.
Передаём удаление как версионированное состояние и удерживаем его для отключённых устройств.
Разделяем временный сетевой отказ, завершение сессии и прикладной конфликт, сохраняя очередь.