изоляция

1 / 28
next
Slide 1: Slide
JavaSpecial Education

This lesson contains 28 slides, with interactive quizzes and text slides.

time-iconLesson duration is: 15 min

Items in this lesson

Slide 1 - Slide

This item has no instructions

Slide 2 - Slide

This item has no instructions

Slide 3 - Slide

This item has no instructions

Slide 4 - Slide

This item has no instructions

Slide 5 - Slide

This item has no instructions

Slide 6 - Slide

This item has no instructions

Slide 7 - Slide

This item has no instructions

Slide 8 - Slide

This item has no instructions

Slide 9 - Slide

This item has no instructions

Slide 10 - Slide

До рефакторинга:
В этой версии кода есть несколько проблем:
*Класс User напрямую зависит от глобального объекта db
*Мы не можем заменить базу данных на другую без изменения кода
*Тестирование затруднено, так как нам нужна реальная база данных
*Если db изменится, придется менять код во многих местах

После рефакторинга:
*Здесь применяется паттерн "Внедрение зависимостей" (Dependency Injection):
*База данных передается в конструктор класса
*User больше не зависит от конкретной реализации базы данных
*Для тестов можно передать фейковую базу данных (мок)
*При необходимости легко заменить базу данных на другую

Slide 11 - Slide

This item has no instructions

Slide 12 - Slide

This item has no instructions

Slide 13 - Slide

This item has no instructions

Slide 14 - Slide

This item has no instructions

Slide 15 - Slide

This item has no instructions

Slide 16 - Slide

This item has no instructions

Slide 17 - Slide

This item has no instructions

Slide 18 - Slide

This item has no instructions


Что такое рефакторинг?
A
Процесс улучшения читаемости кода без изменения его функционала.
B
Процесс оптимизации скорости работы кода.
C
Изменение архитектуры проекта для устранения ошибок.
D
Процесс улучшения кода без изменения его внешнего поведения.

Slide 19 - Quiz

This item has no instructions

Какова основная цель рефакторинга?
A
Уменьшение числа ошибок в коде.
B
Снижение времени выполнения программы.
C
Улучшение удобства работы с кодом для разработки и поддержки.
D
Оптимизация использования оперативной памяти.

Slide 20 - Quiz

This item has no instructions

Что включает в себя изоляция кода?

A
Объединение нескольких модулей в один для удобства тестирования.
B
Полное удаление всех внешних зависимостей.
C
Разделение логики на модули, которые могут тестироваться независимо.
D
Привязка всех модулей к одной централизованной точке управления.

Slide 21 - Quiz

This item has no instructions

Зачем необходимо улучшать тестируемость?

A
Для устранения всех ошибок на этапе написания кода.
B
Для снижения времени, необходимого для рефакторинга.
C
Для упрощения добавления новых функций и повышения надежности системы.
D
Для автоматической генерации новых тестов.

Slide 22 - Quiz

This item has no instructions

Какая основная задача реорганизации зависимостей?
A
Минимизация числа функций в каждом модуле.
B
Уменьшение связанности между модулями, чтобы изменения в одном модуле минимально влияли на другие.
C
Создание строгой иерархии модулей.
D
Объединение всех зависимостей в один универсальный компонент.

Slide 23 - Quiz

This item has no instructions

Какой из инструментов помогает в рефакторинге?

A
GitHub
B
IntelliJ IDEA
C
Slack
D
Docker

Slide 24 - Quiz

This item has no instructions

Как изменяются тесты после рефакторинга?

A
Они становятся зависимыми от конкретной реализации.
B
Они удаляются, так как рефакторинг улучшает стабильность кода.
C
Они используют заглушки (mocks) и интерфейсы для независимости.
D
Они объединяются в один тест для всего приложения.

Slide 25 - Quiz

This item has no instructions

Какой из перечисленных пунктов может считаться риском рефакторинга?
A
Появление новой функциональности.
B
Увеличение времени выполнения тестов.
C
Изменение поведения программы из-за ошибок при внесении изменений.
D
Снижение связности модулей.

Slide 26 - Quiz

This item has no instructions

Какое преимущество дает чек-лист при рефакторинге?

A
Исключение необходимости документирования изменений.
B
Ускорение процесса рефакторинга за счет автоматизации.
C
Структурированный подход, уменьшающий вероятность ошибок.
D
Возможность объединить все тесты в один файл.

Slide 27 - Quiz

This item has no instructions

Какое преимущество дает использование заглушек (mocks) в тестах после рефакторинга?
A
Ускорение работы программы в продакшене.
B
Возможность тестировать отдельные компоненты независимо от их зависимостей.
C
Полное устранение необходимости написания новых тестов.
D
Автоматическая оптимизация всех зависимостей.

Slide 28 - Quiz

This item has no instructions