Открыть сервис

Отмена действий

Отмена действия — это прекращение выполнения или аннулирование результата уже совершённого действия, процесса или операции. В зависимости от контекста, отмена может быть физической (отмена нажатия кнопки), юридической (отмена судебного решения), технической (отмена транзакции) или социальной (отмена культурного события). В информатике и пользовательских интерфейсах отмена действия (англ. undo) — это функция, позволяющая вернуть систему к состоянию, предшествовавшему последнему изменению, путём обратного выполнения команды.

История

Концепция отмены действия существовала задолго до появления компьютеров. В юридической практике отмена (аннулирование) договоров, приказов и законов известна с античных времён. В Древнем Риме существовала процедура abrogatio — отмена закона народным собранием. В средневековой Европе короли и папы римские могли отменять свои указы через специальные грамоты.

С развитием техники и промышленности отмена стала применяться в механизмах: например, в ткацких станках с программным управлением Жаккарда (начало XIX века) существовала возможность остановить процесс и вернуть челнок в исходное положение. Однако настоящий прорыв произошёл в середине XX века с появлением компьютеров.

Развитие в вычислительной технике

Первые реализации функции отмены в компьютерных системах относятся к 1960-м годам. В текстовом редакторе RUNOFF (1964 год) для операционной системы CTSS была реализована команда «отменить последнее изменение» путём сохранения копии предыдущего состояния. В 1970-х годах в редакторе Bravo (Xerox PARC) появилась поддержка многоуровневой отмены (undo/redo) с использованием стека команд. В 1980-х годах компания Apple внедрила команду «Отменить» (Cmd+Z) в системное меню Mac OS, что стало стандартом де-факто. В 1990-х годах Microsoft Windows включила аналогичную функцию в свои приложения.

Виды и классификация

Отмена действия может быть классифицирована по нескольким основаниям.

По способу реализации

По области применения

Устройство и принцип работы

В компьютерных системах функция отмены обычно реализуется через стек команд (или историю изменений). Каждое действие пользователя записывается в виде объекта, содержащего информацию о типе изменения, затронутых данных и обратном преобразовании. При вызове отмены система извлекает последний объект из стека и выполняет обратное действие: восстанавливает предыдущее состояние данных.

Пример реализации в текстовом редакторе:

В более сложных системах (например, в базах данных) отмена транзакций реализуется через журналирование — запись всех изменений в лог, что позволяет откатить базу данных к состоянию на определённый момент времени.

Применение

В программном обеспечении

Функция отмены является стандартной для большинства приложений:

В промышленности и технике

В юриспруденции

В финансах

Примеры

Критика и ограничения

Несмотря на широкое распространение, функция отмены имеет ряд ограничений:

В некоторых системах (например, в банковских) отмена транзакции возможна только до момента её подтверждения; после этого требуется ручное вмешательство оператора.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →