METANIT.COM
6.24K subscribers
1.79K photos
86 videos
10 files
1.26K links
Канал о программировании и разработке сайта metanit.com
Download Telegram
Типы атак на пароли пользователей и способы защиты от этих атак #security
👍2
Все элементы ввода в HTML #html
👍15
Нужно больше readonly.... Из документации по C#
🤣31😁6👏2
40 возможностей для упрощения кода на JavaScript #javascript
👍11🥰2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Cобытийная архитектура (EDA)

Значительная часть задач, которые приходится выполнять современным системам, связана с реакцией на изменения состояния. Например, добавление товара в корзину, отметка «Нравится» под публикацией и оплата счета — все это изменения состояния, которые запускают набор задач в соответствующих системах.
Это требование проложило путь популярному подходу к архитектуре системы, известному как событийная архитектура (EDA).

Архитектура, управляемая событиями, состоит из четырех основных компонентов:

1) События
Это существенные изменения состояния. Например, регистрация пользователя на пробную версию может быть событием в продукте SaaS. Они обычно содержат информацию об изменении состояния.
2) Производители
Генерируют событие - изменения состояния системы. Это различные источники - системные процессы, внешние триггеры и т.д.
3) Потребители
Подписываются на события и выполняют их при возникновении событий
4) Каналы
Облегчают передачу событий между производителями и потребителями
👍7🥰2👏1
Наиболее распространенные API-протоколы, применяемые в приложениях
2
Управление структурой DOM на веб-странице с помощью JavaScript #javascript
👍6
Refactoring databases. Expand_Contract Pattern.jpeg
369.5 KB
Рефакторинг базы данных и "Expand/Contract ". Паттерн "Expand/Contract" обеспечивает плавную миграцию БД, позволяя адаптироваться, ничего не ломая

Процесс из 2 этапов:
• Расширение: внедрение новой структуры с сохранением старой
• Контракт: Удаление старой структуры, когда все системы начнут использовать новую

При переходе одновременно существуют как старая и новая версии.

Например, надо разделить столбец FullName на FirstName и LastName. При переходе:
• Добавляются новые столбцы FirstName и LastName, а существующий FullName сохраняется
• Перенос существующих данных с разделением значения FullName на FirstName и LastName для всех строк

Затем применяется триггер для гарантии совместимости:
• Если старая система вставляет/обновляет FullName, триггер обновляет FirstName и LastName
• Если новая система вставляет/обновляет FirstName и LastName, триггер обновляет FullName

Когда все системы начнут использовать столбцы FirstName и LastName:
• Удалите триггер
• Удалите старый столбец FullName
👍6