Представляем потоки чата!

Прежде чем я продолжу, хочу отметить очевидную истину для всех, кто пользуется чатами: чат — понятие крайне субъективное, и найти «правильное» решение практически невозможно, если выбирать лишь один из множества вариантов.

Я склонен делить треды в чатах на две категории: подпространства и встроенные ответы.

Платформы, использующие формат подпространства, создают «карманы», когда кто-то отвечает на сообщение: все ответы хранятся в таком кармане и скрыты, пока кто-то не нажмёт, чтобы присоединиться к нему. Многие знакомы с этим подходом по Slack; именно так работает встроенная функция чата в Discourse.

Встроенные ответы оставляют все реплики в основном потоке чата, указывая на исходное сообщение через ссылку-якорь. Здесь есть два варианта: с цитированием текста и без. Пример с цитированием — Discord (который использует выдержку, а не полную цитату) или приложение «Сообщения» на устройствах Apple. Ранее Discord использовал встроенные ответы без цитирования, прежде чем перейти к текущему формату. Другой пример встроенных ответов без цитирования — функция чата на Stack Exchange / Stack Overflow.

Оба подхода validны, у каждого есть свои применения, и они в некотором роде «решают» проблемы, создаваемые другим:

  • Я считаю, что карманы подпространства…
    • + отлично подходят для удержания побочной линии рассуждений или глубокого погружения в тему, не отвлекая от основного обсуждения;
    • + позволяют держать такие отклонения аккуратными и легко отслеживаемыми, но
    • - их легко пропустить, особенно если ответы появляются спустя долгое время после того, как чат перешёл к другим темам;
    • - становится важнее убедиться, что вы уведомляете (пингуете) всех, кому нужно видеть эти ответвления.
  • С встроенными чатами всё наоборот…
    • - поскольку всё находится в одном потоке, легко увести чат в сторону, отклонившись в сторону;
    • - может запутать при одновременном отслеживании нескольких линий обсуждения;
    • + поскольку всё в одном потоке, невозможно что-то упустить, как это бывает в подпространствах;
    • + пользователям не нужно сильно задумываться о том, чтобы правильно уведомить конкретных людей в ответе.

Как пользователь Slack и Discord уже несколько лет, я бы утверждал, что «правильное» решение, вероятно, то, которое не хочет слышать ни один разработчик: иметь оба варианта. Для меня главными факторами выбора предпочтительного формата являются:

  1. Сколько людей участвует в чате или насколько он активен.
    • Если я общаюсь с одним человеком или активность низкая, мне нужны только встроенные ответы. Даже при 2–3 участниках подпространства не нужны. Не могу сказать, сколько раз меня раздражало использование подпространств в личных сообщениях Slack между двумя людьми.
    • Если в пространстве много участников и сообщения летят быстро, отслеживать встроенные диалоги становится гораздо сложнее, особенно когда люди неаккуратно используют функцию ответа.
  2. Насколько сильно я хочу/нужно видеть всё.
    • Если я играю вспомогательную роль в канале Slack, подпространства разгружают канал, позволяя мне быстро просматривать сообщения.
    • Если я в пространстве, где упустить что-то, скрытое в треде, было бы плохо, я предпочитаю встроенные ответы. FOMO — это реально, друзья!
  3. Насколько «глубоко» заходит тред.
    • Каналы, где за вопросом следуют десятки или даже сотни ответов, должны использовать подпространства.
    • Каналы, где на сообщение обычно приходится очень мало ответов, лучше работают со встроенными ответами.
  4. Кто я и к чему привык.
    • Я знаю человека, который создал скрипт для Slack, чтобы убрать подпространства, потому что они ему так не нравятся.
    • Я знаю людей, которые настойчиво требуют, чтобы их команды всегда использовали подпространства в каналах Slack, и слегка сердятся, когда этого не делают.

Всё это к тому, что не существует универсального (или даже подходящего для большинства) решения. Я обратился к этому мета-посту именно потому, что находился в чате один на один на другом экземпляре Discourse и был удивлён выбором системы тредов; мне очень хотелось избежать тредов.

Несколько идей, если вы рассматриваете возможность предложить оба варианта:

  • Рассмотрите возможность настройки пользователя, позволяющей выбрать предпочитаемый стиль глобально или для каждого чата отдельно.
  • Учитывайте количество пользователей в пространстве чата, частоту сообщений и среднюю глубину ответов при автоматическом выборе формата — например, использовать встроенные ответы, пока количество ответов в цепочке не достигнет определённого порога, или пока пользователь явно не попросит «преобразовать ответы в тред».
  • Учтите ситуацию, когда кто-то создаёт новый тред ответа на сообщение вчерашнего дня или прошлой недели, и имеет ли смысл указывать на это сообщение (или разрешать отвечающим публиковать ответ встроенно, как это делает Slack).

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

7 лайков