Параллельное редактирование текста

В веб-приложениях часто есть задача по редактированию текстовых документов. Это может быть статья для сайта, текст договора, научная статьи и т.п. В простых случаях можно просто сохранить содержимое, когда пользователь нажимает кнопку «Сохранить». Либо сделать автоматическое сохранение каждые несколько секунд.

Но при этом возникает проблема одновременного редактирования текста. Если в тот момент, когда пользователь открыл текст, начал вносить в него изменения, но пока ничего не сохранил, какой-то другой пользователь откроет тот же текст, отредактирует его и сохранит, то один пользователь затрёт все изменения другого. Кто-то из них потеряет результат своей работы. В случае же автоматического сохранения изменений это происходит ещё более неожиданно.

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

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

Параллельное редактирование упрощает работу над контентом не только за счёт того, что решает проблему перезаписи изменений, но и за счёт того, что даёт возможность работать над документами в реальном времени.

Пользователи могут созвониться и совместно работать над документом. Это может быть очень полезно когда:

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

В админках сайта такая возможность редко бывает реализована. Но у нашей команды есть опыт реализации админок для работы в реальном времени для разных предметных областей.