Pattern Guru. Шаблоны проектирования. Архитектура ПО

Pattern Guru. Шаблоны проектирования. Архитектура ПО

@highloadmicro

Патерны программирования. Архитектура ПО. Микросервисы@anothertechrock

3 143подписчиков
Еженедельно🇷🇺

Похожие каналы

Все →

Последние посты

Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🚩 Шаблон проектирования Декоратор🟣 Подробное описание паттернаСтруктурный паттерн Декоратор (англ. Decorator) позволяет расширять функциональность без использования наследования. Дело в том, что механизм наследования имеет несколько проблем:1⃣ Он статичный, т.е. не дает возможности менять поведение уже существующего объекта. 2⃣ Он не позволяет наследовать поведение нескольких классов одновременно.Декоратор позволяет обойти эти проблемы. Суть этого шаблона отлично передает его второе название — "обертка". Вы помещаете один объект в другой — обертку. Обертка запускает базовое поведение объекта, а затем что-то добавляет к нему.🗂 Код на Python

29 мая 2026 г.215В Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🔥 Приглашаем на бесплатный открытый вебинар курса «Высоконагруженные системы: архитектура и масштабирование»:«Polyglot Persistence: как современные системы живут с десятками баз данных»🗓 Когда: 2 июня, 20:00 (мск) Одной базы данных уже давно недостаточно. Современные высоконагруженные системы — это сложная экосистема из разных хранилищ, каждое из которых решает свою задачу. На вебинаре разберём, как грамотно сочетать PostgreSQL, ClickHouse, Redis, Kafka и Elasticsearch, чтобы система оставалась быстрой, согласованной и отказоустойчивой.Что будет на вебинаре:— Принципы Polyglot Persistence и роль каждой базы в современной архитектуре— Как связать PostgreSQL, ClickHouse, Redis и Kafka без потери согласованности данных— Event-driven подход, CDC и Outbox-паттерн в высоконагруженных системах — Архитектурные приёмы построения надёжных data-платформ, способных выдерживать миллионы операцийКому будет полезно:— Backend-разработчикам, желающим понимать устройство современных систем— Архитекторам и DevOps-инженерам, решающим задачи масштабирования и согласованности— Всем, кто работает с большими данными и хочет эффективно комбинировать разные типы хранилищ👉 Зарегистрироваться: https://vk.cc/cYdHaSБесплатное занятие приурочено к курсу «Highload Architect», на котором вы научитесь проектировать сложные высоконагруженные системы, грамотно выбирать и сочетать технологии хранения и обработки данных.Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

27 мая 2026 г.319В Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🕯 Паттерн Proxy (Прокси)Proxy — это структурный паттерн, который предоставляет объект-заместитель для управления доступом к другому объекту, обеспечивая контроль над его использованием.Использование:🔹 Когда необходимо контролировать доступ к ресурсоемким объектам или операциям. 🔹 Для добавления дополнительной функциональности без изменения исходного объекта.Преимущества:1⃣ Позволяет контролировать доступ к реальному объекту, например, для ленивой инициализации или кэширования. Это может улучшить производительность, так как ресурсоемкие объекты создаются только тогда, когда они действительно нужны.2⃣ Позволяет контролировать доступ к объектам, добавляя проверки перед вызовом методов. Это полезно для управления доступом в сетевых приложениях или для защиты данных.3⃣ Позволяет оптимизировать работу с удаленными объектами, минимизируя количество вызовов или обрабатывая их асинхронно. Это снижает нагрузку на систему и повышает скорость работы приложения.4⃣ Может использоваться для логирования или отслеживания вызовов методов реального объекта, не внося изменений в сам объект. Это упрощает мониторинг и отладку системы.

26 мая 2026 г.397В Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🔥Приглашаем на бесплатный урок курса «Архитектор программного обеспечения»: «API Gateway и не только: шаги к идеальной архитектуре внешних API»🎓Мы разберём продуманную архитектуру внешних API: какие проблемы возникают при их проектировании, как API Gateway помогает их решать и какие паттерны стоит применять, чтобы сделать взаимодействие с системой удобным, безопасным и масштабируемым.📚Вопросы вебинара:- Сложности проектирования API- Нестабильные каналы, перегрузка, вопросы безопасности и производительности- Зачем нужен API Gateway- Проектирование - Популярные решения и подходы- Агрегация, адаптация и переиспользование API- Антипаттерны и типичные ошибки👉 Регистрация https://otus.pw/szNj/Реклама ООО «Отус онлайн-образование», ОГРН 1177746618576

20 мая 2026 г.628В Telegram

Паттерн Singletone с примером на JavaScriptНесмотря на то что в последнее время все больше задач мы обычно решаем в функциональном стиле я хотел бы сегодня вам рассказать о одном из самых распространенных классовых паттернов - синглтон.И так что это:Паттерн Singleton означает создание только одного экземпляра класса и доступ к нему через методы-геттеры.Пример использования:class Singleton { constructor() {  if (!Singleton.instance) {   Singleton.instance = this;  }  return Singleton.instance; } someMethod() {  console.log('Hello from Singleton!'); }}const instance1 = new Singleton();const instance2 = new Singleton();instance1.someMethod(); // "Hello from Singleton!"console.log(instance1 === instance2); // trueВ данном примере класс Singleton будет создавать только один экземпляр и все вызовы конструктора будут возвращать ссылку на этот экземпляр. Таким образом, мы можем быть уверены, что где бы ни встретились вызовы методов класса Singleton, они всегда будут работать с одним и тем же экземпляром.

20 мая 2026 г.581В Telegram

Паттерн Singletone с примером на JavaScriptНесмотря на то что в последнее время все больше задач мы обычно решаем в функциональном стиле я хотел бы сегодня вам рассказать о одном из самых распространенных классовых паттернов - синглтон.И так что это:Паттерн Singleton означает создание только одного экземпляра класса и доступ к нему через методы-геттеры.Пример использования:class Singleton { constructor() {  if (!Singleton.instance) {   Singleton.instance = this;  }  return Singleton.instance; } someMethod() {  console.log('Hello from Singleton!'); }}const instance1 = new Singleton();const instance2 = new Singleton();instance1.someMethod(); // "Hello from Singleton!"console.log(instance1 === instance2); // trueВ данном примере класс Singleton будет создавать только один экземпляр и все вызовы конструктора будут возвращать ссылку на этот экземпляр. Таким образом, мы можем быть уверены, что где бы ни встретились вызовы методов класса Singleton, они всегда будут работать с одним и тем же экземпляром.

14 мая 2026 г.775В Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🚩 Шаблон проектирования Заместитель🟣 Подробное описание паттернаЗаместитель (англ. Proxy) — структурный паттерн проектирования. Он позволяет подставлять вместо реальных объектов специальные объекты-заменители. Эти объекты перехватывают вызовы к оригинальному объекту, позволяя сделать что-то до или после передачи вызова оригиналу.🟪 Ситуации, когда можно использовать паттерн Заместитель:🔎 Виртуальный proxy является заместителем объектов, создание которых обходится дорого. Реальный объект создается только при первом запросе/доступе клиента к объекту.🔎 Удаленный proxy предоставляет локального представителя для объекта, который находится в другом адресном пространстве ("заглушки" в RPC и CORBA).🔎 Защитный proxy контролирует доступ к основному объекту. "Суррогатный" объект предоставляет доступ к реальному объекту, только вызывающий объект имеет соответствующие права.🔎 Интеллектуальный proxy выполняет дополнительные действия при доступе к объекту.🗂 Код на Python

29 апр. 2026 г.985В Telegram

#паттерныВведениеСегодня мы рассмотрим паттерн проектирования "Абстрактная фабрика".КлассификацияТип: ПорождающийОпределение: Абстрактная фабрика - это порождающий паттерн проектирования, который предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов.Грубо говоря, абстрактная фабрика - это "фабрика фабрик", данный паттерн позволяет решить проблему создания целых семейств связанных объектов, без указания конкретных классов продуктов.С помощью абстрактной фабрики вы можете предоставить библиотеку объектов не расскрывая их реализацию.Из чего состоит и как работает данный паттерн1. Абстрактного класса/Интерфейса абстрактной фабрики. Содержит абстрактные методы которые возвращают абстрактные продукты, связанные одной конпцецией.class AbstractFactory(ABC): @abstractmethod def create_product_a(self): ... @abstractmethod def create_product_b(self): ...2. Конретные фабрики. Конкретные фабрики реализут операции которые создают конкретные продукты.class ConcreteFactory1(AbstractFactory): def create_product_a(self): return ConcreteProductA1() def create_product_b(self): return ConcreteProductB1()class ConcreteFactory2(AbstractFactory): def create_product_a(self): return ConcreteProductA2() def create_product_b(self): return ConcreteProductB2()3. Абстрактные классы продуктов. Реализуют интерфейс для всех конретных продуктов своего семейства.class AbstractProductA(ABC): @abstractmethod def very_important_super_function_a(self) -> str: ...class AbstractProductB(ABC): @abstractmethod def very_important_super_function_b(self) -> str: ...4. Конкретные продукты. Реализуют абстрактные продукты. Продукты одного семейства не могут взаимодействовать, с продуктами другого семейства.class ConcreteProductA1(AbstractProductA): def very_important_super_function_a(self) -> str: return "Product A1"class ConcreteProductA2(

23 апр. 2026 г.688В Telegram

ПаттерныВ одном репозитории собрано 111 паттернов проектирования. На данный момент это самый популярный репозиторий на языке Java, у него почти 50k звёзд.Для каждого паттерна есть подробное описание и примеры реализации на Java: https://github.com/iluwatar/java-design-patterns#паттерны #java

23 апр. 2026 г.721В Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО — пост в ТГ канале

🚩 Шаблон проектирования Абстрактная фабрика🟣 Подробное описание паттернаШаблон Абстрактная фабрика (англ. Abstract Factory) относится к классу порождающих паттернов. Его основное назначение — предоставить интерфейс для создания семейства взаимосвязанных объектов, не указывая конкретные классы этих объектов.🟪 Этот шаблон стоит использовать, если:🔎 Ваша система должна быть независимой от способа создания новых объектов🔎 Создаваемые объекты должны использоваться вместе и быть взаимосвязанными.Классы абстрактной фабрики часто реализуются фабричными методами, но могут быть реализованы и с помощью паттерна Prototype.🗂 Код на Python

15 апр. 2026 г.1 220В Telegram