Практически каждый разработчик хотя бы раз сталкивался с необходимостью реализации функциональности отмены (undo) и повтора (redo) действий в своих приложениях. Это важная функция любого качественного интерфейса, ведь именно она даёт пользователю свободу ошибаться и экспериментировать. Но почему так часто её делают сложно, запутанно и с ошибками? Недавно интересную и компактную реализацию на JavaScript предложил Юлик Тарханов. Давайте разберёмся, в чём секрет его подхода и почему это достойно внимания. Начнём с главных требований к хорошей реализации undo/redo: Юлик отметил интересную деталь: большинство разработчиков при реализации undo-стека используют один массив и указатель, и именно из-за этого возникают типичные ошибки — неправильная индексация, ошибки off-by-one и путаница между методами массива. Автор предложил иную стратегию — использовать два независимых массива: Вот как это работает: На мой взгляд, это блестящая находка, которая радикально упрощает жизнь программисту! Юлик с
📌 Магия отмены и повтора: как написать элегантный undo/redo на JavaScript
27 марта 202527 мар 2025
130
3 мин