От защиты контекста до удобства пользователя

История разработки функции редактирования сообщений в приложении MyChat началась с фундаментального принципа: не допустить искажения смысла разговора. Мы, как разработчики, с самого начала решили, что пользователи могут исправлять только свои собственные сообщения, но ни в коем случае не чужие. «Редактирование только своих сообщений. Даже администратору нельзя менять чужие месседжи», — такова была исходная концепция.

Временные рамки и борьба с манипуляциями

Вскоре стало очевидно, что одного лишь запрета на редактирование чужих сообщений недостаточно. Ключевым дополнением стало введение временного ограничения. Было решено, что «нельзя редактировать сообщения, которые были отправлены вчера или месяц назад». Логика простая: исправить свежую опечатку или заменить неудачное слово в ходе активного диалога — это нормально, но изменение старых сообщений может полностью разрушить контекст разговора.

Это решение было продиктовано реальным опытом. Команда MyChat столкнулась с недобросовестным поведением на своем официальном форуме. Пользователи задавали вопросы «в провокационном стиле», а после того как сотрудники службы поддержки готовили развернутые ответы с пояснениями и скриншотами, что требовало значительных временных затрат, авторы вопросов возвращались и редактировали свои исходные посты. В результате менялся смысл вопроса. И в итоге получается, «ты написал ответ, а он не про то, что спрашивали».

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

На сервере MyChat было установлено стандартное ограничение на редактирование — 15 минут. Однако администраторы могут гибко настраивать этот параметр, уменьшая или увеличивая время по своему усмотрению.

Прозрачность и контроль

Чтобы сделать процесс редактирования полностью прозрачным для всех участников чата, была введена система визуальных уведомлений. Как только пользователь вносит правку в свое сообщение, рядом с ним появляется специальная пометка — иконка карандаша. Если навести на нее курсор мыши, отображается точное время последнего изменения. Это позволяет отследить, когда именно и сколько раз сообщение редактировалось, сохраняя при этом первоначальную временную метку (timestamp) его отправки.

Инновационный подход: редактирование с помощью «звездочки»

Помимо стандартных способов редактирования (через контекстное меню или нажатие клавиши «вверх» для вызова последнего сообщения в поле ввода), в MyChat была внедрена уникальная технология, основанная на нечетком поиске. Разработчики заметили распространенную пользовательскую привычку: заметив опечатку, люди часто отправляют новое сообщение с правильным словом, предваряя или завершая его символом «*» (звездочка).

MyChat научился распознавать этот паттерн. Теперь, если пользователь отправляет сообщение вида *правильноеслово или слово*, система автоматически определяет, что он хочет исправить ошибку в своем последнем отправленном сообщении. Алгоритм нечеткого поиска находит наиболее подходящий фрагмент текста и заменяет его на новый вариант. Чат подберет тот кусок сообщения, которое стоит заменить, и заменит его. Это достаточно удобно и очень быстро. Метод оказался значительно быстрее стандартных, особенно для исправления мелких опечаток.

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

Скачать MyChat

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *