alternative

Здравствуйте, мои дорогие! :)

Целых три недели ушло на то, чтобы доделать работу с изменениями документов! И я очень рад, что этот вызов был преодолён!

Наверняка у вас возникает вопрос - что это вообще такое и почему это так важно, что тратим на это уйму времени!?

Так вот, если посмотреть на большинство редакторов, то файлы, в которых они хранят данные - это лишь конечный документ, над которым работал автор. Вся магия по отмене последнего действия работает пока пользователь не закроет программу. В Starc'е всё устроено иначе - когда автор делает какое-либо изменение, то записывается не только текст самого сценария или любого другого документа, но также и информация об изменении.

Нужно это по ряду причин.
Во-первых для того, чтобы обезопасить авторов от пропажи текста. Как известно, файлы могут портится во время сбоя электропитания, когда кончается место на жёстком диске и по ряду других, как правило спонтанных причин. Резервные копии защищают от многих из них, но, к сожалению не всегда. А вот когда в файле у нас есть блок данных со списком изменений, даже если последние из них были повреждены, мы сможем достать все предыдущие и на их основе сформировать текст сценария.
Во-вторых, чтобы организовать возможность совместной работы над проектами. Есть разные способы реализации совместной работы онлайн, в нашем случае она выглядит так, что авторы отправляют друг другу не весь текст сценария, а лишь правки, которые применяются на другом конце и хранятся на сервере. Это решает проблему необходимости обоим авторам находится онлайн во время работы над документом, а так же даёт возможность оффлайн работы с проектом (когда все изменения сначала хранятся на вашем устройстве, а когда появляется интернет улетают в облако).
Ну и в-третьих, это позволяет дать возможность работать с самой историей изменений. Начиная от того, что пользователю будут доступны инструменты просмотра информации о том, в какой день, какие изменения были совершены (и кто их совершил в случае совместной работы). И заканчивая возможностью отмены последнего изменение, даже после перезагрузки компьютера. Так что проблема, что вы случайно импортировали текст, вместо экспорта, или когда кот прыгал на клавиатуре и стёр весь текст более не актуальна. Вы в любой момент сможете открыть программу и отменить последние вредоносные действия.

Кроме того, требовалось, чтобы весь механизм был максимально универсальным. Так, чтобы в дальнейшем можно было реализовать всё вышеперечисленное не только для сценария, а и вообще для любого документа, будь то текстовая заметка или ментальная карта.

И вот теперь, после того, как несколько реализаций были выкинуты по причине слабой производительности, или чрезмерной сложности, было найдено то самое, которое показало себя отлично, в самых сложных испытаниях, я хочу вас всех обнять! :)

Маленький шаг, но большая радость и мощный энергетический заряд для дальнейших свершений!

Дальше больше! Оставайтесь на связи!