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

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

الذهاب إلى القناة على Telegram

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

إظهار المزيد
3 142
المشتركون
لا توجد بيانات24 ساعات
-47 أيام
-2430 أيام
أرشيف المشاركات
Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен Автор поделился своим взглядом на пр
Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен Автор поделился своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. Читать статью

Что нужно знать, чтобы профессионально проектировать микросервисную архитектуру? Обсудим 🗓 13 сентября в 20:00 мск на открыт
Что нужно знать, чтобы профессионально проектировать микросервисную архитектуру? Обсудим 🗓 13 сентября в 20:00 мск на открытом уроке «Паттерны аутентификации и авторизации» в OTUS. На открытом уроке рассмотрим: - различные паттерны аутентификации и авторизации - сессионную аутентификацию на основе кук и токенов (jwt) - работу identity провайдеров 👨‍💻 Ведущий — Евгений Непомнящий, опытный C++ и Java разработчик. 👉🏻 Пройдите вступительный тест, чтобы зарегистрироваться! Занятие дает возможность предварительно попробовать новый онлайн-курс «Microservice architecture» для разработчиков и администраторов, которые хотят вырасти до архитектора ПО.

Вопрос с собеседования Что такое KISS? Ответ: KISS (аббр. от Keep it short and simple или Keep it simple, stupid) - это принцип проектирования и программирования, запрещающий использование более сложных средств, чем необходимо. Принцип декларирует простоту системы в качестве основной цели и/или ценности. #interview

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

Шаблон проектирования Factory Method Фабричный метод — порождающий паттерн проектирования. Он определяет общий интерфейс для
Шаблон проектирования Factory Method Фабричный метод — порождающий паттерн проектирования. Он определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов. Используется, когда: - классу заранее неизвестно, объекты каких подклассов ему нужно создать - обязанности делегируются подклассу, а знания о том, какой подкласс принимает эти обязанности, локализованы - создаваемые объекты родительского класса специализируются подклассами Применяйте шаблон Фабричный метод в случае, когда хотите без проблем внедрять в вашу программу новые объекты с новыми конфигурациям для взаимодействия с основной бизнес-логикой. Смотреть реализацию

📌 Хотите знать продвинутые техники построения архитектуры? 📚 В День знаний, 1 сентября в 20:00 мск состоится открытый урок
📌 Хотите знать продвинутые техники построения архитектуры? 📚 В День знаний, 1 сентября в 20:00 мск состоится открытый урок «Паттерны отказоустойчивости и масштабируемости микросервисной архитектуры». 🔥 На занятии мы разберем ограничения и возможности микросервисной архитектуры, проведем обзор паттернов микросервисной архитектуры, рассмотрим три оси масштабирования, подходы stateless vs stateful, шкалу резервирования и отказоустойчивости, graceful degradation и индикаторы SLI, SLO, SLA. 🦾 Вебинар проведет Анатолий Бурнашев, эксперт с опытом 20+ лет на проектах заказной разработки в ИТ. 💻 Больше полезных знаний, необходимых архитектору ПО, ждет вас на онлайн-курсе «Software Architect» OTUS. 💣 Для участия пройдите вступительный тест

Топ-5 архитектурных паттернов для распределённых систем Распределённые приложения позволяют веб-приложениям с огромной аудито
Топ-5 архитектурных паттернов для распределённых систем Распределённые приложения позволяют веб-приложениям с огромной аудиторией оставаться реактивными. Чтобы эффективно проектировать эти системы, программисты используют фундаментальные блоки — паттерны распределённых систем. В этой статье рассматриваем пять архитектур распределённых систем, их плюсы, минусы и области применения. Читать статью

ООП паттерн Visitor Рассматриваем поведенческий паттерн Visitor с примерами на Scala. Читать статью
ООП паттерн Visitor Рассматриваем поведенческий паттерн Visitor с примерами на Scala. Читать статью

Вопрос с собеседования В чем разница между процедурным программированием и ООП? Ответ: Процедурное программирование: - Основано на функциях - Определяет данные для всей программы - В нем нет возможности повторного использования кода - Следует концепции нисходящего программирования - Природа языка сложна - Трудно изменять, расширять и поддерживать код Объектно-ориентированное программирование: - Основано на реальных объектах - Инкапсулирует данные - Обеспечивает больше возможностей для повторного использования кода - Следует парадигме программирования «снизу вверх» - Код менее сложен по своей природе, поэтому его легче модифицировать, расширять и поддерживать #interview

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

Вопросы и ответы для подготовки к собеседованию Авторская подборка ответов к вопросам, которые могут задать на собеседовании
Вопросы и ответы для подготовки к собеседованию Авторская подборка ответов к вопросам, которые могут задать на собеседовании Java-разработчику. Читать статью

Вопрос с собеседования Назовите поведенческие шаблоны и кратко опишите их. Ответ: Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой. К поведенческим шаблонам относятся: - Chain of Responsibility (Цепочка Обязанностей) - организует независимую от объекта-отправителя цепочку не знающих возможностей друг друга объектов-получателей, которые передают запрос друг другу (object that can fulfill a request); - Command (Команда) - используется для определения по некоторому признаку объекта конкретного класса, которому будет передан запрос для обработки (when and how a request is fulfilled); - Iterator (Итератор) - позволяет последовательно обойти все элементы коллекции или другого составного объекта, не зная деталей внутреннего представления данных (how an aggregate's elements are accessed, traversed); - Mediator (Посредник) - позволяет снизить число связей между классами при большом их количестве, выделяя один класс, знающий все о методах других классов (how and which objects interact with each other); - Memento (Хранитель) - сохраняет текущее состояние объекта для дальнейшего восстановления (what private information is stored outside an object, and when); - Observer (Наблюдатель) - позволяет при зависимости между объектами типа «один ко многим» отслеживать изменения объекта (number of objects that depend on another object; how the dependent objects stay up to date); - State (Состояние) - позволяет объекту изменять свое поведение за счет изменения внутреннего объекта состояния (states of an object); - Strategy (Стратегия) - задает набор алгоритмов с возможностью выбора одного из классов для выполнения конкретной задачи во время создания объекта (an algorithm); - Template Method (Шаблонный Метод) - создает родительский класс, использующий несколько методов, реализация которых возложена на производные классы (steps of an algorithm); - Visitor (Посетитель) - представляет операцию в одном или нескольких связанных классах некоторой структуры, которую вызывает специфичный для каждого такого класса метод в другом классе (operations that can be applied to object(s) without changing their class(es)); - Interpreter (Интерпретатор) - для определенного способа представления информации определяет правила (grammar and interpretation of a language). #interview

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

Шпаргалка по шаблонам проектирования Описание 23-х шаблонов проектирования из книги "Design Patterns" от Банды четырех. Кажды
Шпаргалка по шаблонам проектирования Описание 23-х шаблонов проектирования из книги "Design Patterns" от Банды четырех. Каждый пункт содержит короткое описание паттерна и UML-диаграмму. Читать статью

Какие есть особенности у микросервисной архитектуры? Обсудим 🗓 29 августа в 20:00 мск на открытом урок «Принципы организации
Какие есть особенности у микросервисной архитектуры? Обсудим 🗓 29 августа в 20:00 мск на открытом урок «Принципы организации микросервисов. Типы взаимодействий» с Владиславом Родиным, экспертом по Java Enterprise разработке. На занятии мы проанализируем плюсы и минусы микросервисов, а также посмотрим, какие инструменты используются для построения микросервисов. 👉🏻 Пройдите вступительное тестирование, чтобы записаться на урок — https://otus.pw/EqU9/ Больше нового о работе с высокой нагрузкой вы сможете узнать, если продолжите обучение на онлайн-курсе «Highload Architect» от OTUS.

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

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

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

Как создавать отказоустойчивые и масштабируемые системы? Одна их стратегий для этого — шардирование. Если вам интересна эта т
Как создавать отказоустойчивые и масштабируемые системы? Одна их стратегий для этого — шардирование. Если вам интересна эта тема, приходите 🗓 21 июня в 20:00 на открытый урок «Шардирование в микросервисной архитектуре». На открытом уроке мы с экспертом: - Рассмотрим виды шардинга - Проанализируем стратегии шардирования - Разберем консистентное шардирование, поиск, вычисления, хранение - Узнаем, как правильно делить данные 👉🏻 Пройдите вступительный тест, чтобы записаться на урок! Еще больше полезных знаний для разработчиков и администраторов будет ждать вас на онлайн-курсе «Microservice architecture» OTUS.

Шаблон проектирования Bridge Мост относится к классу структурных паттернов. Он позволяет отделить абстракцию от реализации, б
Шаблон проектирования Bridge Мост относится к классу структурных паттернов. Он позволяет отделить абстракцию от реализации, благодаря чему становится возможно изменять код в каждой ветке по отдельности. Паттерн Мост полезен там, где часто меняется не только сам класс, но и то, что он делает. Смотреть реализацию