Pattern Guru. Шаблоны проектирования. Архитектура ПО
5.68K subscribers
141 photos
2 videos
103 links
Патерны программирования.
Архитектура ПО.
Микросервисы

@anothertechrock
加入频道
🚩 Шаблон проектирования Посредник

🟣 Подробное описание паттерна

Посредник (англ. Mediator) относится к поведенческим паттернам. Он позволяет уменьшить связанность множества классов между собой, перемещая эти связи в один класс-посредник.

🙂Аналогия из жизни 🙂
Представьте себе контроль трафика в аэропорту: все решения о том, какие самолеты могут взлетать или садиться, принимает диспетчер. Для этого все сообщения не пересылаются между самолетами напрямую, а поступают в башню управления. Такой централизованный контроллер и есть «медиатор».

Mediator выступает в качестве посредника в общении между различными модулями, инкапсулируя их взаимодействие.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Wasm на сервере в высоконагруженных системах 🚀

🔥 20 августа в 20:00 мск — открытый вебинар в OTUS.

На вебинаре вы узнаете:

- Как использовать WebAssembly для серверной разработки вне браузера.
- Как запускать wasm-приложения в продакшене, независимо от ОС и языка разработки.
- Как компилировать и масштабировать wasm-приложения в облаке с помощью Docker, NGINX Unit, Envoy и Knative.
- Как профилировать и оценивать производительность wasm на сервере.

🎓 Что будет на вебинаре?

- Сборка wasm-модулей с помощью TinyGo, Emscripten, Cargo.
- Настройка окружения с WASI для запуска серверных wasm-приложений.
- Запуск wasm в контейнерах и публикация через NGINX Unit.
- Интеграция с Envoy и деплой wasm-приложений в Knative.
- Инструменты для анализа производительности: wzprof, логи, метрики.

🎓 После вебинара вы:

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

💡 Присоединяйтесь, чтобы научиться запускать WebAssembly в продакшене и улучшить производительность ваших серверных приложений!

🎁Все участники получат чек-лист “Разбор ошибок: 5 распространенных проблем при проектировании отказоустойчивых хранилищ”

👉 Регистрация
https://vk.cc/cOxxWP

Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚩 Шаблон проектирования Приспособленец (Легковес)

🟣 Подробное описание паттерна

Приспособленец (англ. Flyweight) — структурный паттерн проктирования. Он позволяет вместить большее количество объектов в отведенную оперативную память.

Основная идея паттерна — различие между внутренним и внешним состоянием объекта. Внешнее состояние передается клиентом, использующим приспособленца, в некотором контексте. Внутреннее состояние хранится непосредственно в приспособленце и позволяет разделять их. Под разделением понимается возможность одновременной работы нескольких клиентов с одним и тем же приспособленцем.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🚩 Шаблон проектирования Команда

🟣 Подробное описание паттерна

Команда (англ. Command) — один из поведенческих шаблонов, добавляющий слой абстракции между действием и объектом, который это действие вызывает. Пример - кнопка и действие, которое выполняется при нажатии на эту кнопку.

Паттерн преобразовывает запрос на выполнение действия в отдельный объект-команду.

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

🟪 Когда применяется Команда?

🔎 Когда вы хотите параметризовать объекты выполняемым действием.

🔎 Когда вы хотите ставить операции в очередь, выполнять их по расписанию или передавать по сети.

🔎 Когда вам нужна операция отмены.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👌2
🚩 Шаблон проектирования Посетитель

🟣 Подробное описание паттерна

Посетитель (англ. Visitor) — это поведенческий паттерн проектирования, который позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.

🟪 Когда применяется Посетитель?

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

🔎 Когда над объектами сложной структуры объектов надо выполнять некоторые не связанные между собой операции, но вы не хотите «засорять» классы такими операциями.

🔎 Когда новое поведение имеет смысл только для некоторых классов из существующей иерархии.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM