Доброго времени суток, уважаемые Хабрапользователи!
Некоторое время назад мы начали разрабатывать систему вопросов-ответов (две малоизвестные компании уже создали по аналогу: ответы mail.ru или ответы Google). И мы, кроме прочего, поставили задачу избавиться от всех недочётов и проблем, которые мы выявили в существующих подобных системах.
Одной из таких проблем является «форумность» получения ответов, то есть: всё обсуждение вопроса подобно теме на форуме. Одним списком идут и ответы от разных пользователей, и дополнительные уточнения, адресованные автору вопроса, и вообще какие-то косвенно связанные с первоначальным вопросом сообщения. Это приводит к «замусориванию» ответов, что усложняет восприятие и снижает качество услуги.
В качестве альтернативы, мы можем предложить следующую схему. Информация, вводимая пользователями, разделена на три типа:
- Ответы на первоначальный вопрос (основной и главный тип)
- Уточняющие вопросы к автору первоначального вопроса (и ответы на них)
- Сообщения, напрямую не связанные с вопросом, но которые часто возникают при обсуждении какой-то темы (чат).
При этом каждый из этих типов обладает своими естесственными особенностями. Например, ответы оцениваются пользователями, уточняющие вопросы формируют дополнительный контекст вопроса; в чате можно обсудить косвенно относящиеся к теме вещи, например, какие-то специфические ньюансы или смежные вопросы.
Перед нами встал вопрос: какую структуру подачи ответов выбрать?
Если взять более сложную структуру данных, то мы избавляемся от замусоривания ответов, получаем более структурированную информацию, что позволяет правильнее инде��сировать материал.
Однако, при этом усложняется форма ответа. Вместо одного поля и кнопки «ответить», мы имеем три таких блока.
Ситуацию иллюстрируют вот эти скриншоты:
«Простой» подход:

«Сложный» подход:
