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

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

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

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

نمایش بیشتر
3 142
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-47 روز
-2430 روز
آرشیو پست ها
Вопрос с собеседования Что такое иерархическое наследование? Ответ опубликуем завтра, а пока пишите свои варианты в комментариях! #interview

Архитектор предприятия — одна из ключевых ролей в крупных IT-корпорациях. Хотите перейти на новый уровень, будучи аналитиком,
Архитектор предприятия — одна из ключевых ролей в крупных IT-корпорациях. Хотите перейти на новый уровень, будучи аналитиком, архитектором решений или руководителем? Тогда приглашаем вас 🗓 22 декабря в 19:00 на открытый урок «Architecture As a Code» онлайн-курса «Enterprise Architect» в OTUS. На занятии мы: - Обсудим предпосылки появления, преимущества и недостатки, границы применимости этой практики - Рассмотрим текущую ситуацию в индустрии - Hands-On: на практике ознакомимся с предлагаемым подходом 👨‍💻Спикером выступит Прохоров Вячеслав, старший архитектор в одном из вендоров программного обеспечения. 👉 Для участия зарегистрируйтесь — https://otus.pw/2SiP/ Не упустите возможность познакомиться с преподавателем и оценить качество материалов курса.

Вопрос с собеседования Что такое Liskov substitution principle? Ответ: Liskov substitution principle - принцип подстановки Барбары Лисков. Роберт С. Мартин определил этот принцип так: "Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом". Более простыми словами принцип звучит так: "Наследующий класс должен дополнять, а не замещать поведение базового класса". Суть принципа в следующем. Если у нас есть класс A и унаследованный от него класс B, то если мы заменим все использования класса A на B, ничего не должно измениться в работе программы. Ведь класс B всего лишь расширяет функционал класса A. #interview

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

Сделайте первые шаги к правильному проектированию архитектуры backend-приложений! 🗓 19 декабря в 20:00 пройдет открытый урок
Сделайте первые шаги к правильному проектированию архитектуры backend-приложений! 🗓 19 декабря в 20:00 пройдет открытый урок «RESTful API паттерны». Вместе с Евгением Непомнящим, разработчиком в М-Тех, поговорим о REST: — Рассмотрим уровни зрелости REST — Затронем HATEOAS — Рассмотрим паттерны REST — Посмотрим, как они реализуются в json-api и odata — Сгенерируем клиент к сервису по openapi idl. 👉 Пройдите вступительный тест, чтобы записаться на урок — https://otus.pw/cmUX/ Открытый урок является частью онлайн-курса «Microservice architecture» OTUS.

Вопрос с собеседования Что такое наследование? Ответ: Если вы порождаете класс от другого класса, это называется наследованием. Дочерний класс наследует все публичные и защищенные свойства и методы от родительского класса. Дочерний класс также может иметь свои собственные свойства и методы. Наследуемый класс определяется с помощью ключевого слова extends. Множественное наследование - это когда класс наследует более одного базового класса. Пример: класс, объясняющий ребенка. Этот класс – ребенок – наследует от двух базовых классов, которыми являются мать и отец. Многоуровневое наследование - это когда класс наследуется от другого класса, который сам является подклассом какого-то другого базового класса. Пример: класс под названием спортивный велосипед, который наследуется от базового класса велосипед. В свою очередь, класс велосипед наследуется от другого класса транспортное средство. #interview

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

Хотите освоить навыки архитектора высоких нагрузок? Подключайтесь 🗓 8 декабря в 16:30 к вебинару «Алгоритмы распределенного
Хотите освоить навыки архитектора высоких нагрузок? Подключайтесь 🗓 8 декабря в 16:30 к вебинару «Алгоритмы распределенного консенсуса (RAFT, PAXOS)». Открытый урок проведет Андрей Поляков, старший разработчик в Unlimint и преподаватель OTUS. На занятии мы: - Разберем, для чего используются алгоритмы распределенного консенсуса, и какие они бывают. - Посмотрим, как работают алгоритмы RAFT, PAXOS, а также византийский консенсус 👉 Для участия необходимо пройти вступительный тест — https://otus.pw/yUTd/ ❗️Осилите тест — получите более 20 записей прошедших вебинаров по высоким нагрузкам. Больше ценных знаний будет ждать вас на онлайн-курсе «Highload Architect» от OTUS. Программа ориентирована на веб-разработчиков, тимлидов команд веб-разработки, архитекторов, технических руководителей и начинающих SRE-специалистов.

Вопрос с собеседования Что такое GRASP? Ответ: GRASP (аббр. General Responsibility Assignment Software Patterns, русск. - общие шаблоны распределения обязанностей) - шаблоны проектирования, используемые для решения общих задач по назначению обязанностей классам и объектам. Известно девять GRASP-шаблонов: - Information Expert (Информационный эксперт). Описывает основополагающие принципы назначения обязанностей классам и объектам. Информационным экспертом (объектом, наделенным некоторыми обязанностями) является объект, обладающий максимумом информации, необходимой для выполнения назначенных обязанностей. - Creator (Создатель). Суть ответственности такого объекта в том, что он создает другие объекты. Сразу напрашивается аналогия с фабриками. - Controller (Контроллер). Отвечает за обработку входных системных событий, делегируя обязанности по их обработке компетентным классам. В общем случае контроллер реализует один или несколько вариантов использования. Использование контроллеров позволяет отделить логику от представления, тем самым повышая возможность повторного использования кода. - Low Coupling (Слабая связанность). Если объекты в приложении сильно связаны, то любое их изменение приводит к изменениям во всех связанных объектах. А это неудобно и порождает баги. Вот поэтому необходимо, чтобы код был слабо связан и зависел только от абстракций. - High Cohesion (Высокая сцепленность). Этот принцип тесно соотносится со слабой связанностью: одно всегда приводит к другому. И это показатель того, что мы не нарушаем single resposibility principle. Вернее сказать, высокая сцепленность получается в результате соблюдения такого принципа из SOLID, как single resposibility principle (SRP). - Pure Fabrication (Чистая выдумка или чистое синтезирование). Это класс, не отражающий никакого реального объекта предметной области, но специально придуманный для усиления связности, ослабления связанности или увеличения степени повторного использования. Pure Fabrication отражает концепцию сервисов в модели Программирование от предметной области. - Indirection (Посредник). Шаблон перенаправление реализует низкую связность между классами путем назначения обязанностей по их взаимодействию дополнительному объекту - посреднику. - Protected Variations (Сокрытие реализации или защищенные изменения). Защищает элементы от изменения других элементов (объектов или подсистем) с помощью вынесения взаимодействия в фиксированный интерфейс. Всё взвимодействие между элементами должно происходить через него. Поведение может варьироваться лишь с помощью создания другой реализации интерфейса. - Polymorphism (Полиморфизм). Позволяет обрабатывать альтернативные варианты поведения на основе типа и заменять подключаемые компоненты системы. Обязанности распределяются для различных вариантов поведения с помощью полиморфных операций для этого класса. Все альтернативные реализации приводятся к общему интерфейсу. #interview

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

Что нужно знать, чтобы профессионально проектировать микросервисную архитектуру? Обсудим 5 декабря в 20:00 на открытом уроке
Что нужно знать, чтобы профессионально проектировать микросервисную архитектуру? Обсудим 5 декабря в 20:00 на открытом уроке «Паттерны аутентификации в микросервисной архитектуре». 👨‍💻 Спикер — Станислав Щетинников, директор разработки с 10-летним опытом. На занятии рассмотрим: - основные паттерны аутентификации и межсервисной аутентификации в микросервисной архитектуре - узнаем, какие бывают identity провайдеры и sso токены 👉 Пройдите вступительный тест для регистрации на занятие — https://otus.pw/1ijY/ Не упустите возможность протестировать обучения на онлайн-курсе «Microservice architecture» OTUS.

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

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

Вопрос с собеседования Что такое Open/closed principle? Ответ: Open/closed principle - принцип объектно-ориентированного программирования, устанавливающий следующее положение: "Программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения". Это означает, что такие сущности могут позволять менять свое поведение без изменения их исходного кода. #interview

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

Подводные камни Singleton: почему самый известный шаблон проектирования нужно использовать с осторожностью Паттерн «Одиночка»
Подводные камни Singleton: почему самый известный шаблон проектирования нужно использовать с осторожностью Паттерн «Одиночка» — пожалуй, самый известный паттерн проектирования. Тем не менее, он не лишен недостатков, поэтому некоторые программисты считают его антипаттерном. Разбираемся в том, какие же подводные камни таятся в Singleton’е. Читать статью

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

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

🔥Хотите развиваться как Сloud Native специалист? ⚡️Приглашаем вас 4 октября в 20:00 на открытый урок «Эволюция архитектуры и
🔥Хотите развиваться как Сloud Native специалист? ⚡️Приглашаем вас 4 октября в 20:00 на открытый урок «Эволюция архитектуры и разработки ПО от монолита до сервлета». 📚Что вас ждет на уроке? — Рассмотрим основные архитектурные шаблоны: монолит, 2-слойная/3-х слойная архитектура, микросервисы, сервлеты; — Обсудим различия, сходства и причины перехода от одного шаблона к другому; — Поймем, как облачные принципы создания приложений могут быть использованы в каждом из шаблонов. После demo-занятия вы сможете продолжить обучение на онлайн-курсе «Cloud Solution Architecture» по welcome скидке. 🎯 ЗАРЕГИСТРИРОВАТЬСЯ https://otus.pw/5re1/

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