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

@anothertechrock
Download Telegram
Вопрос с собеседования

Что такое иерархическое наследование?

Ответ:

Это когда один базовый класс имеет более одного подкласса. Например, класс фруктов может иметь в качестве подклассов «яблоко», «манго» и т. д.

#interview
👍51
Вопрос с собеседования

Какие антишаблоны вы знаете?

Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Какие антишаблоны вы знаете?

Ответ:

Например...

Big ball of mud (Большой Ком Грязи) - термин для системы или просто программы, которая не имеет хоть немного различимой архитектуры. Как правило, включает в себя более одного антишаблона. Этим страдают системы, разработанные людьми без подготовки в области архитектуры ПО.

Yo-Yo problem (Проблема Йо-Йо) - возникает, когда необходимо разобраться в программе, иерархия наследования и вложенность вызовов методов которой очень длинны и сложны. Программисту вследствие этого необходимо лавировать между множеством различных классов и методов, чтобы контролировать поведение программы. Термин происходит от названия игрушки йо-йо.

Magic Button - возникает, когда код обработки формы сконцентрирован в одном месте и, естественно, никак не структурирован.

Magic Number - наличие в коде многократно повторяющихся одинаковых чисел или чисел, объяснение происхождения которых отсутствует.

Gas Factory (Газовый Завод) - необязательный сложный дизайн для простой задачи.

Analiys paralisys (Паралич анализа). В разработке ПО проявляет себя через чрезвычайно длинные фазы планирования проекта, сбора необходимых для этого артефактов, программного моделирования и дизайна, которые не имеют особого смысла для достижения итоговой цели.

Interface Bloat (Распухший Интерфейс) - термин, используемый для описания интерфейсов, которые пытаются вместить в себя все возможные операции над данными.

Accidental complexity (Случайная сложность) - проблема в программировании, которой легко можно было избежать. Возникает вследствие неправильного понимания проблемы или неэффективного планирования.

#interview
👍13🔥5
Вопрос с собеседования

Что такое гибридное наследование?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое гибридное наследование?

Ответ:

Сочетание множественного и многоуровневого наследования известно как гибридное наследование.

#interview
👍5
Вопрос с собеседования

Что такое Interface segregation principle?

Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!

#interview
👍1
Вопрос с собеседования

Что такое Interface segregation principle?

Ответ:

Interface segregation principle - принцип разделения интерфейса (много специализированных интерфейсов лучше, чем один универсальный).

Иными словами, большие, объемные интерфейсы надо разбивать на мелкие. При этом клиенты маленьких интерфейсов должны знать только о тех методах, которые необходимы им в работе. Также при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют.

#interview
Вопрос с собеседования

Что такое модификаторы доступа?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое модификаторы доступа?

Ответ:

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

#interview
Вопрос с собеседования

Что такое YAGNI?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое YAGNI?

Ответ:

YAGNI (аббр. от You ain't gonna need it - "Тебе это не понадобится") - принцип проектирования ПО, при котором в качестве основной цели и/или ценности декларируется отказ от избыточной функциональности. Суть в том, чтобы реализовывать только поставленные задачи и отказываться от избыточного функционала.

#interview
👍11
Шаблон проектирования Builder

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

От абстрактной фабрики отличается тем, что делает акцент на пошаговом конструировании объекта. Строитель возвращает объект на последнем шаге, тогда как абстрактная фабрика возвращает объект немедленно.

Паттерн Builder может помочь в решении следующих задач:

1. В системе могут существовать сложные объекты, которые сложно или невозможно создать за одну операцию. Требуется поэтапное построение объектов с контролем результатов выполнения каждого этапа.

2. Данные должны иметь несколько представлений. Допустим, есть некоторый исходный документ в формате RTF (Rich Text Format), в общем случае содержащий текст, графические изображения и служебную информацию о форматировании (размер и тип шрифтов, отступы и др.). Если этот документ в формате RTF преобразовать в другие форматы (например, Microsoft Word или простой ASCII-текст), то полученные документы и будут представлениями исходных данных.

Смотреть реализацию
Вопрос с собеседования

Что такое абстракция?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое абстракция?

Ответ:

Абстракция – это концепция ООП для построения структуры объектов реального мира. Она «показывает» только существенные атрибуты и «прячет» ненужную информацию от посторонних глаз. Основная цель абстракции – скрыть ненужные детали от пользователей. Это одна из самых важных концепций ООП.

#interview
👍9👎2
Друзья, напишите что вам нравится или не нравится в контенте канала, что добавить,что исправить, что убрать?
Интересно ваше мнение.

Так же будем рады хорошим сайтам и источникам хорошего контента по паттернам и архитектуре ПО.

Комментарии под постом.
🔥5👍2
Вопрос с собеседования

Что такое Single responsibility principle?

Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое Single responsibility principle?

Ответ:

Single responsibility principle - принцип единственной ответственности (на каждый класс должна быть возложена одна-единственная обязанность).

Если один класс реализует 2 набора функций, их сцепление создает ситуацию, при которой изменение одного нарушит имеющееся сочетание.

#interview
👍4
Поведенческие шаблоны проектирования простым языком

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

В этой статье рассмотрим все эти шаблоны на простых примерах.

Читать статью
5💩1
Вопрос с собеседования

Что такое перегрузка методов?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое перегрузка методов?

Ответ:

Существует концепция, согласно которой два или более методов могут иметь одинаковое имя. Но они должны иметь разные параметры, разное количество параметров, разные типы параметров или и то, и другое. Такие методы известны как перегруженные методы, и эта особенность называется перегрузкой методов.

#interview
Вопрос с собеседования

Каковы ограничения наследования?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview