Прежде чем я продолжу, хочу отметить очевидную истину для всех, кто пользуется чатами: чат — понятие крайне субъективное, и найти «правильное» решение практически невозможно, если выбирать лишь один из множества вариантов.
Я склонен делить треды в чатах на две категории: подпространства и встроенные ответы.
Платформы, использующие формат подпространства, создают «карманы», когда кто-то отвечает на сообщение: все ответы хранятся в таком кармане и скрыты, пока кто-то не нажмёт, чтобы присоединиться к нему. Многие знакомы с этим подходом по Slack; именно так работает встроенная функция чата в Discourse.
Встроенные ответы оставляют все реплики в основном потоке чата, указывая на исходное сообщение через ссылку-якорь. Здесь есть два варианта: с цитированием текста и без. Пример с цитированием — Discord (который использует выдержку, а не полную цитату) или приложение «Сообщения» на устройствах Apple. Ранее Discord использовал встроенные ответы без цитирования, прежде чем перейти к текущему формату. Другой пример встроенных ответов без цитирования — функция чата на Stack Exchange / Stack Overflow.
Оба подхода validны, у каждого есть свои применения, и они в некотором роде «решают» проблемы, создаваемые другим:
- Я считаю, что карманы подпространства…
- + отлично подходят для удержания побочной линии рассуждений или глубокого погружения в тему, не отвлекая от основного обсуждения;
- + позволяют держать такие отклонения аккуратными и легко отслеживаемыми, но
- - их легко пропустить, особенно если ответы появляются спустя долгое время после того, как чат перешёл к другим темам;
- - становится важнее убедиться, что вы уведомляете (пингуете) всех, кому нужно видеть эти ответвления.
- С встроенными чатами всё наоборот…
- - поскольку всё находится в одном потоке, легко увести чат в сторону, отклонившись в сторону;
- - может запутать при одновременном отслеживании нескольких линий обсуждения;
- + поскольку всё в одном потоке, невозможно что-то упустить, как это бывает в подпространствах;
- + пользователям не нужно сильно задумываться о том, чтобы правильно уведомить конкретных людей в ответе.
Как пользователь Slack и Discord уже несколько лет, я бы утверждал, что «правильное» решение, вероятно, то, которое не хочет слышать ни один разработчик: иметь оба варианта. Для меня главными факторами выбора предпочтительного формата являются:
- Сколько людей участвует в чате или насколько он активен.
- Если я общаюсь с одним человеком или активность низкая, мне нужны только встроенные ответы. Даже при 2–3 участниках подпространства не нужны. Не могу сказать, сколько раз меня раздражало использование подпространств в личных сообщениях Slack между двумя людьми.
- Если в пространстве много участников и сообщения летят быстро, отслеживать встроенные диалоги становится гораздо сложнее, особенно когда люди неаккуратно используют функцию ответа.
- Насколько сильно я хочу/нужно видеть всё.
- Если я играю вспомогательную роль в канале Slack, подпространства разгружают канал, позволяя мне быстро просматривать сообщения.
- Если я в пространстве, где упустить что-то, скрытое в треде, было бы плохо, я предпочитаю встроенные ответы. FOMO — это реально, друзья!
- Насколько «глубоко» заходит тред.
- Каналы, где за вопросом следуют десятки или даже сотни ответов, должны использовать подпространства.
- Каналы, где на сообщение обычно приходится очень мало ответов, лучше работают со встроенными ответами.
- Кто я и к чему привык.
- Я знаю человека, который создал скрипт для Slack, чтобы убрать подпространства, потому что они ему так не нравятся.
- Я знаю людей, которые настойчиво требуют, чтобы их команды всегда использовали подпространства в каналах Slack, и слегка сердятся, когда этого не делают.
Всё это к тому, что не существует универсального (или даже подходящего для большинства) решения. Я обратился к этому мета-посту именно потому, что находился в чате один на один на другом экземпляре Discourse и был удивлён выбором системы тредов; мне очень хотелось избежать тредов.
Несколько идей, если вы рассматриваете возможность предложить оба варианта:
- Рассмотрите возможность настройки пользователя, позволяющей выбрать предпочитаемый стиль глобально или для каждого чата отдельно.
- Учитывайте количество пользователей в пространстве чата, частоту сообщений и среднюю глубину ответов при автоматическом выборе формата — например, использовать встроенные ответы, пока количество ответов в цепочке не достигнет определённого порога, или пока пользователь явно не попросит «преобразовать ответы в тред».
- Учтите ситуацию, когда кто-то создаёт новый тред ответа на сообщение вчерашнего дня или прошлой недели, и имеет ли смысл указывать на это сообщение (или разрешать отвечающим публиковать ответ встроенно, как это делает Slack).
Я считаю, что то, что у вас есть, вполне приемлемо, но мне бы очень хотелось увидеть, как Discourse, развивая эту функцию, размоет границу между этими двумя различными подходами.