В конспекте следует использовать термины «ООП» и «наследование». Пример Dog/Cat показывает полиморфизм, а Git — отдельную тему, не принцип объектного подхода.
ОПП (Объектно-Ориентированное Программирование) — это подход к разработке программ, при котором код организуется в виде объектов
В конспекте следует использовать термины «ООП» и «наследование». Пример Dog/Cat показывает полиморфизм, а Git — отдельную тему, не принцип объектного подхода.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
ОПП (Объектно-Ориентированное Программирование) — это подход к разработке программ, при котором код организуется в виде объектов
Инкапсуляция Инкапсуляция — это объединение данных и методов, работающих с этими данными, внутри одного класса, а также ограничение прямого доступа к внутреннему состоянию объекта. Простыми словами: объект сам управляет своими данными, а внешний код взаимодействует с ним через методы.
Абстракция Абстракция — это выделение только важных характеристик объекта и сокрытие деталей его реализации. Простыми словами: пользователю важно что делает объект, а не как именно он это делает.
Полиморфизм Полиморфизм — это возможность объектов с разной реализацией использовать один интерфейс. В тестировании это помогает писать универсальный код, работающий с разными типами данных или классами. Пример в Python: class Animal: def make_sound(self): pass class Dog(Animal): def make_sound(self): return "Woof!" class Cat(Animal): def make_sound(self): return "Meow!" def animal_sound(animal: Animal): print(animal.make_sound()) dog = Dog() cat = Cat()
animal_sound(dog) # Woof! animal_sound(cat) # Meow! В автотестах полиморфизм полезен для:
- Создания универсальных методов проверки
- Реализации разных стратегий тестирования через один интерфейс
- Поддержки разных версий API/UI без изменения тестов
Наследственность Наследование — это механизм, позволяющий новому классу использовать существующего автоматически получая его свойства и методы. Простыми словами: новый класс переиспользует код родительского класса и при необходимости расширяет его.
Git
- Системы контроля версий. Локальная, централизованная, распределенная.
- Основные понятия. Репозиторий, индекс, коммит, указатели, ветка, рабочая копия.
- Работа с репозиторием. Команды: init, clone, status
- Создание коммита. Команды: add, commit.
- Создание, просмотр, переключение между ветками, удаление. Команды: branch, checkout, log, diff.
- Отмена изменений. Команды: restore, rm, checkout, revert.
- Слияние изменений между ветками. Команды: merge, cherry-pick, rebase.
- Работа с удалённым репозиторием. Команды: fetch, pull, push.
- Работа с GitHub, форки и Pull Requests.
Ответ
В конспекте следует использовать термины «ООП» и «наследование». Пример Dog/Cat показывает полиморфизм, а Git — отдельную тему, не принцип объектного подхода.
Инкапсуляция защищает состояние и инварианты через публичный интерфейс; абстракция выделяет существенный контракт. Наследование задаёт отношение подтипов, но не обязано быть основным способом повторного использования кода. В примере animal_sound вызывает один метод у разных объектов; Python допускает это и без общего базового класса благодаря duck typing. Раздел Git полезен как план подготовки отдельно: важно отличать отмену локальных изменений от revert-коммита и понимать, что rebase переписывает историю.