Инструменты пользователя

Инструменты сайта


оод

Вопросы и ответы при собеседовании по теме ООД (Объектно-ориентированный дизайн)

Вопросы

  • Что такое абстракция (abstraction)? В чем разница между абстракцией, инкапсуляцией и сокрытием информации?
  • Что такое связность (Coupling)? Как абстракция влияет на связь?
  • Что такое сплоченность (Cohesion)? Является ли это значение обратной величиной Coupling?
  • Разделение проблем (Separation of concerns, SoC)
    1. Что это?
    2. Каковы преимущества следования этому принципу?
    3. Что означают горизонтальное и вертикальное разделение проблем?
    4. Возможно ли вертикальное разделение без горизонтального и наоборот?
    5. Как это связано с принципом единой ответственности и сплоченностью?
  • Простота (Simplicity)
    1. Как Рич Хики в своем отчете «Simple Made Easy» описывает разницу между простым и легким? Почему в первую очередь стремление к простоте, а не к легкости?
    2. Что такое принцип KISS?
    3. Как KISS помогает в построении ментальных моделей? В чем ценность этих моделей?
    4. Как участие в разработке бизнес-требований может помочь следовать KISS?
    5. Когда абстракция противоречит KISS?
    6. Почему наследование может привести к нарушению KISS?
    7. В чем принцип ЯГНИ? Как это соотносится с принципом KISS?
  • DRY
    1. В чем основная идея принципа DRY?
    2. Как принцип связан со сплоченностью?
    3. Как принцип соотносится с принципом SRP?
    4. Почему этот принцип неразрывно связан с SPOT (Единая точка истины)?
    5. Какие примеры дублирования кода не нарушают DRY?
    6. Какие есть примеры копирования кода бизнес-логики, которые также не нарушают DRY?
    7. Как следование принципу DRY может привести к нарушению KISS?
    8. Как следование принципу DRY может привести к преждевременному генерализации?
    9. Почему при попытке убрать дублирование, когда повторений этого кода еще мало (до 4-5), мы легко можем ошибиться и выбрать неправильный метод рефакторинга? Какая аналогия со статистикой?
    10. Как объяснить фразу «Дублирование гораздо дешевле неправильной абстракции»?
  • Каковы общие проблемы? Что означает грубая и мелкая ответственность?

Ссылки

оод.txt · Последнее изменение: 2020/09/04 08:35 — oleg