# Безопасно меняйте существующую систему

Taiga Learning · Рабочий лист
https://taiga.training/ru/lessons/existing-systems/

Используйте вымышленную или разрешённую информацию. Не записывайте секреты в этот рабочий лист.

## Цели обучения
- Находить контракты, которые может затронуть локальное изменение кода.
- Объяснять поэтапное изменение expand-and-contract.
- Отличать откат кода от восстановления данных.

## Упражнение
Выберите небольшое изменение поля или API. Перечислите всех, кто читает и записывает данные, включая фоновые задачи. Опишите первый шаг без удаления существующих элементов, проверку перехода и условие удаления. Определите шаг, который может сделать откат невозможным.

## Ваш ответ
- Сценарий и объём:
- Предположения и открытые вопросы:
- Предлагаемый ответ или решение с обоснованием:

## Проверьте свой ответ
| Утверждение или критерий | Подтверждение или тест | Результат или пробел | Ответственный |
| --- | --- | --- | --- |
| | | | |
| | | | |
| | | | |

## Следующее действие
- Действие, ответственный и дата:
- Когда вы пересмотрите этот ответ?

## Принцип, который нужно сохранить
Проверяйте переход между версиями, а не только итоговую архитектуру. Старые и новые компоненты могут работать одновременно.

## Источники
- [Martin Fowler: Parallel Change](https://martinfowler.com/bliki/ParallelChange.html)

Этот рабочий лист помогает обучению. Его заполнение само по себе не разрешает изменение production.
