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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
3 096
مشترکین
+124 ساعت
-97 روز
-2130 روز
آرشیو پست ها
🔥27 октября в 20:00 мск — открытый вебинар в OTUS! О чём вебинар? Хотите заглянуть под капот TikTok, Netflix и Telegram? Раз
🔥27 октября в 20:00 мск — открытый вебинар в OTUS! О чём вебинар? Хотите заглянуть под капот TikTok, Netflix и Telegram? Разберём, как эти гиганты справляются с миллионами пользователей! Узнайте, как TikTok создаёт персональные рекомендации в реальном времени, Netflix обеспечивает бесперебойный стриминг через CDN и микросервисы, а Telegram молниеносно доставляет сообщения. Что разберём: - TikTok: алгоритмы рекомендаций и инфраструктура мгновенной доставки контента. - Netflix: использование CDN и микросервисов для стриминга без сбоев. - Telegram: очереди, репликация и хранение сообщений под высокой нагрузкой. - Highload-паттерны: кэширование, шардирование и техники отказоустойчивости. 🎓 После вебинара вы: - Разберётесь, как ведущие платформы выдерживают колоссальные нагрузки. - Освоите ключевые подходы к кэшированию, шардированию и отказоустойчивости. 🔧 Присоединяйтесь, чтобы раскрыть секреты архитектур TikTok, Netflix и Telegram и прокачать свои навыки в Highload! 👉 Зарегистрироваться https://vk.cc/cQxOMO Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Вопрос с собеседования Что такое Dependency inversion principle? Ответ: Dependency inversion principle - принцип инверсии зависимостей. Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций. #interview

Вопрос с собеседования Что такое Dependency inversion principle? Ответ опубликуем завтра, а пока пишите свои варианты в комментариях! #interview

📌 Технологический ландшафт меняется: всё чаще ключевым критерием выбора становятся вопросы импортозамещения. Для корпоративных архитекторов это означает не только пересмотр стека и инструментов, но и необходимость учитывать требования регуляторов и растущую роль Open Source. Д 👩‍💻 Что обсудим на уроке: • Как новые реалии влияют на проектирование ИТ-инфраструктуры; • Какие архитектурные стили и решения выходят на первый план; • Советы по построению эффективной системы в условиях изменений. 🎯 Открытый урок проходит в преддверие старта курса «Enterprise Architect» и идеально подойдет специалистам-аналитикам, архитекторам и руководителям проектов, стремящимся обновить свое понимание профессии и обрести ясность в современных реалиях. 📅 Урок состоится 22 октября в 19:00 МСК. Присоединяйтесь и получите ценные знания прямо сейчас! ➡️ Регистрация открыта по ссылке https://vk.cc/cQnFSm Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Вопрос с собеседования Что такое виртуальные функции? Ответ: Виртуальные функции – это часть функций, которые присутствуют в родительском классе, и они переопределяются подклассом. Эти функции помогают достичь полиморфизма во время выполнения. #interview

Вопрос с собеседования Что такое виртуальные функции? Ответ опубликуем завтра, а пока пишите свои варианты в комментариях! #interview

🔥16 октября в 20:00 мск — открытый вебинар в OTUS! О чём? Хотите объединять данные из разных источников в PostgreSQL без сло
🔥16 октября в 20:00 мск — открытый вебинар в OTUS! О чём? Хотите объединять данные из разных источников в PostgreSQL без сложных ETL-процессов? Foreign-Data Wrappers (FDW) позволяют превратить PostgreSQL в мощный центр управления данными из внешних баз, облачных хранилищ и систем больших данных. Что разберём: - Foreign-Data Wrappers: как они работают в PostgreSQL. - Интеграция: подключение к внешним базам (MySQL, MongoDB и др.) и управление данными как локальными таблицами. - Примеры: объединение данных из разных источников без ETL. - Облачные решения: использование FDW с облачными хранилищами и Big Data. - Оптимизация: лучшие практики настройки FDW для высокой производительности. 🎓 После вебинара вы: - Научитесь подключать PostgreSQL к внешним источникам через FDW. - Освоите настройку и интеграцию данных для гибридных систем.. 🔧 Присоединяйтесь, чтобы раскрыть потенциал PostgreSQL и упростить интеграцию данных в ваших проектах! 👉 Зарегистрироваться https://vk.cc/cQb5xR Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Паттерн 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, они всегда будут работать с одним и тем же экземпляром.

🔥 25 сентября в 20:00 мск — открытый вебинар в OTUS! О чём? В мире высоконагруженных систем с сотнями сервисов управление ко
🔥 25 сентября в 20:00 мск — открытый вебинар в OTUS! О чём? В мире высоконагруженных систем с сотнями сервисов управление конфигурацией, сервис-дискавери и координация компонентов — это настоящий вызов. Apache ZooKeeper — проверенное решение для создания надёжных и управляемых распределённых систем. Что разберём: - ZooKeeper: что это и зачем он нужен в распределённых системах. - Архитектура: ZNode, лидер-выборы, механизмы согласованности. - Применение: сервис-дискавери, управление конфигурацией, координация задач. - Ограничения: сравнение ZooKeeper с Etcd и Consul. - Практика: реальные кейсы использования в highload-системах. 🎓 После вебинара вы: - Поймёте, как ZooKeeper решает задачи координации и конфигурации. - Узнаете, когда использовать ZooKeeper, а когда выбрать Etcd или Consul. 🔧 Присоединяйтесь, чтобы освоить мощный инструмент для построения масштабируемых и отказоустойчивых систем! 👉 Зарегистрироваться https://vk.cc/cPLDLw Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Anonymous voting

🔥 От разработчика до архитектора высоконагруженных систем! 🚀 Высоконагруженные системы — необходимость для крупных проектов
🔥 От разработчика до архитектора высоконагруженных систем! 🚀 Высоконагруженные системы — необходимость для крупных проектов. Пройдите тест, проверьте свои знания и получите скидку на курс «Highload Architect» от OTUS. Вы научитесь: ✅ Проектировать масштабируемые системы, способные обрабатывать миллионы запросов ✅ Оптимизировать производительность и работать с отказоустойчивыми архитектурами ✅ Использовать современные инструменты и технологии для создания высоконагруженных решений ✅ Применять лучшие практики в проектировании и разработке серверных приложений 📌 Пройдите тест и получите скидку на курс! Подробности уточняйте у менеджера 👉 Пройти тест https://vk.cc/cPCE8D Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Вопрос с собеседования Зачем нужна инкапсуляция? Ответ: Инкапсуляция позволяет скрыть данные и обернуть данные и код, который работает над ними, в единое целое. #interview

Вопрос с собеседования Зачем нужна инкапсуляция? Ответ опубликуем завтра, а пока пишите свои варианты в комментариях! #interview

⁉️ Как на практике соединить бизнес-цели и IT-архитектуру? Ответ прост: моделировать потоки ценности с помощью ArchiMate. Отк
⁉️ Как на практике соединить бизнес-цели и IT-архитектуру? Ответ прост: моделировать потоки ценности с помощью ArchiMate. Открытый вебинар 24 сентября — это уникальная возможность понять, как Business Capability Map помогает организовать деятельность компании и как эти карты можно трансформировать в потоки создания ценности (Value Stream). Эксперт поделится реальными кейсами и разберёт, как эффективно визуализировать и управлять процессами с помощью ArchiMate. Курс «Archimate» — это ваш шанс научиться работать с ключевыми бизнес-методами, которые становятся основой архитектуры компании. Освойте создание Capability Map и Value Stream, и применяйте эти инструменты для улучшения бизнес-процессов. ➡️ Пройдите вебинар и получите скидку на курс «Archimate»: https://vk.cc/cPz7iR Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Шаблон проектирования Строитель 🟣 Подробное описание паттерна Строитель (англ. Builder) — порождающий паттерн проектирования
+7
Шаблон проектирования Строитель 🟣 Подробное описание паттерна Строитель (англ. Builder) — порождающий паттерн проектирования. Он позволяет создавать сложные объекты пошагово. Строитель дает возможность использовать один и тот же код строительства для получения разных представлений объектов. От абстрактной фабрики отличается тем, что делает акцент на пошаговом конструировании объекта. Строитель возвращает объект на последнем шаге, тогда как абстрактная фабрика возвращает объект немедленно. 🟪 Паттерн Строитель может помочь в решении следующих задач: 🔎 В системе могут существовать сложные объекты, которые сложно или невозможно создать за одну операцию. Требуется поэтапное построение объектов с контролем результатов выполнения каждого этапа. 🔎 Данные должны иметь несколько представлений. Допустим, есть некоторый исходный документ в формате RTF (Rich Text Format), в общем случае содержащий текст, графические изображения и служебную информацию о форматировании (размер и тип шрифтов, отступы и др.). Если этот документ в формате RTF преобразовать в другие форматы (например, Microsoft Word или простой ASCII-текст), то полученные документы и будут представлениями исходных данных. 🗂 Код на Python

🚩 Шаблон проектирования Цепочка обязанностей 🟣 Подробное описание паттерна Цепочка обязанностей (англ. Chain of Responsibil
+8
🚩 Шаблон проектирования Цепочка обязанностей 🟣 Подробное описание паттерна Цепочка обязанностей (англ. Chain of Responsibility) — поведенческий паттерн проектирования. Он позволяет передавать запросы по цепочке обработчиков последовательно. Каждый последующий обработчик решает, может ли он обработать запрос сам и стоит ли передавать запрос дальше по цепи. 🙂Аналогия из жизни🙂 Самый наглядный пример шаблона — компьютерная сеть. Пусть в сетевой модели есть 4 типа обработчиков — сеть, маршрутизатор, форвардер и сервер. Также есть всего один тип запроса — запрос на обработку сервером. Обработчики ведут себя следующим образом: сеть — просто предает по своей среде запрос, маршрутизатор — передает запрос из одной сети в другую, форвардер — передает запрос конкретному хосту, сервер — обрабатывает запрос. Узлы сети представляют собой конвейер обработчиков. Запрос — конкретное сообщение. Запрос, двигаясь по цепочке, обрабатывается (маршрутизируется, форвардится) каждым ее узлом и передается дальше. До тех пор, пока не будет окончательно обработан сервером. 🗂 Код на Python

🚩 Шаблон проектирования Стратегия 🟣 Подробное описание паттерна Стратегия (англ. Strategy) относится к поведенческим шаблон
+4
🚩 Шаблон проектирования Стратегия 🟣 Подробное описание паттерна Стратегия (англ. Strategy) относится к поведенческим шаблонам проектирования. Цель этого паттерна - выделить схожие алгоритмы, решающие конкретную задачу. Реализация алгоритмов выносится в отдельные классы и предоставляется возможность выбирать алгоритмы во время выполнения программы. 🙂Аналогия из жизни🙂 Вам нужно добраться до аэропорта. Можно доехать на автобусе, такси или велосипеде. Здесь вид транспорта является стратегией. Вы выбираете конкретную стратегию в зависимости от контекста — наличия денег или времени до отлёта. 🟪 Когда применять? 🔎 Когда вам нужно использовать разные вариации какого-то алгоритма внутри одного объекта. 🔎 Когда у вас есть множество похожих классов, отличающихся только некоторым поведением. 🔎 Когда вы не хотите обнажать детали реализации алгоритмов для других классов. 🔎 Когда различные вариации алгоритмов реализованы в виде развесистого условного оператора. Каждая ветка такого оператора представляет собой вариацию алгоритма. 🗂 Код на Python

🚩 Шаблон проектирования Прототип 🟣 Подробное описание паттерна Прототип (англ. Prototype) — порождающий паттерн проектирова
+6
🚩 Шаблон проектирования Прототип 🟣 Подробное описание паттерна Прототип (англ. Prototype) — порождающий паттерн проектирования. Он позволяет копировать объекты, не вдаваясь в подробности их реализации. 🟪 Когда использовать Прототип? 🔎 Когда конкретный тип создаваемого объекта должен определяться динамически во время выполнения. 🔎 Когда нежелательно создание отдельной иерархии классов фабрик для создания объектов-продуктов из параллельной иерархии классов (как это делается, например, при использовании паттерна Абстрактная фабрика). 🔎 Когда клонирование объекта является более предпочтительным вариантом, чем его создание и инициализация с помощью конструктора. Особенно если известно, что объект может принимать небольшое ограниченное число возможных состояний. 🗂 Код на Python

🚩 Шаблон проектирования Наблюдатель 🟣 Подробное описание паттерна Наблюдатель (англ. Observer) — поведенческий паттерн прое
+6
🚩 Шаблон проектирования Наблюдатель 🟣 Подробное описание паттерна Наблюдатель (англ. Observer) — поведенческий паттерн проектирования. Определяет зависимость типа "один ко многим" между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются. 🟪 Когда применять: 🔎 Когда после изменения состояния одного объекта требуется что-то сделать в других, но вы не знаете наперёд, какие именно объекты должны отреагировать. 🔎 Когда одни объекты должны наблюдать за другими, но только в определённых случаях. 🗂 Код на Python

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