# Променяйте безопасно съществуваща система

Taiga Learning · Работен лист
https://taiga.training/bg/lessons/existing-systems/

Използвайте измислена или одобрена информация. Не поставяйте тайни стойности в този работен лист.

## Учебни цели
- Определете договорите между компонентите, които локална промяна в кода може да засегне.
- Обяснете поетапна промяна expand-and-contract.
- Разграничете rollback на кода от възстановяване на данни.

## Упражнение
Изберете малка промяна в поле или API. Избройте всички компоненти, които четат и записват, включително фоновите задачи. Опишете първа стъпка само с добавяне, проверка на прехода и условие за премахване. Определете коя стъпка може да попречи на rollback.

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

## Проверете отговора си
| Твърдение или критерий | Доказателства или тест | Резултат или пропуск | Отговорник |
| --- | --- | --- | --- |
| | | | |
| | | | |
| | | | |

## Следващо действие
- Действие, отговорник и дата:
- Кога ще прегледате този отговор?

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

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

Този работен лист подпомага ученето. Самото му попълване не разрешава промяна в продукционната среда.
