Q: Хорошо спроектированное ПО должно обладать сильным сцеплением и слабой связностью. Что это значит?
A: Сцепление - сила зависимостей внутри модуля. Связность - сила зависимостей между разными модулями. Итог: внутри модуля должны быть сильные зависимости, а снаружи - нет.
A: Явление, при котором роль главной программы в координации и последовательности действий приложения выполняет фреймворк (а не код пользователя). В этом основное отличие фреймворка и библиотеки. Библиотека - это набор функций, которые вызываются кодом пользователя, а после окончания выполнения возвращают управление пользователю. В случае с фреймворком он сам координирует и вызывает код пользователя.
Q: Расскажите про Принцип подстановки Барбары Лисков.
A: Наследующий класс должен дополнять, а не замещать поведение базового класса. Если класс Б унаследован от А, то мы можем заменить в программе все использования класса А на Б и при этом в работе программы ничего не изменится.
A: Разрастание графа зависимостей библиотек. Чем опасно? Например, несколько или даже один программный продукт может косвенно потребовать разные версии одной и той же библиотеки.
A: 1. Нарушают инкапсуляцию (к ним открыт доступ из любой части программы), добавляют лишние зависимости между компонентами; 2. Ухудшают масштабируемость; 3. Способствуют возникновению трудноуловимых ошибок.
Q: Вопросы для QA лида. Какие действия предпринимаете, чтобы прокачивать свои навыки?
A: 1. Слежу за появлением новых техник тест-дизайна, тестовых стратегий, фреймворков автоматизации, тестовых утилит; 2. Прохожу онлайн-курсы; 3. Стараюсь быть в курсе того, какие еще проекты есть/появились в рамках нашей компании; 4. Стараюсь прокачиваться в тайм менеджменте.
Q: Вопросы для QA лида. Как вы бы мотивировали свою команду?
A: 1. Всегда быть на связи; 2. Планировать и проводить совместные митинги, убеждаться, что все договоренности, к которым пришли в ходе встречи, были выполнены сотрудниками. Разбирать проблемы, которые есть у членов команды на текущий момент времени; 3. Ревьювить текущие статусы членов команды.