← Timeline
Avatar placeholder
tigra
Стиль "Кирпич" и полиморфизм отображения постов

Reply to the post by @lamed:

Это одна из самых ненавидимых фич в ФБ до сих пор Во многих сообществах они запрещены, а FB Purity режет их по умолчанию. Но если юзеры хотят, можно сделать.

Логично: это агрессивный захват внимания. И если простой юзер как-то сам выясняет, стоит ему применять это или нет и как часто, как реагируют его френды, то в сообществах обязательно будут недовольные.

Но если в кирпиче цитата из Мизеса, то это хороший кирпич :)

С моей точки зрения это, конечно, такой не очень важный энханцмент.

Для такого типа фич я планирую ввести в теле поста параметр "стиль поста". (Ты помнишь, что тело поста - это не просто HTML, а JSON, туда можно запихивать что угодно?) Тогда будет стиль "кирпич" с параметрами - цвет и маска фона. Если клиент понимает этот стиль, он будет его отображать. А пользователь, в свою очередь, может отменить его отображение в настройках клиента.

Т.е. текст поста - это просто одно из полей JSON-а? И заголовок, например, тоже?

Тогда представим себе, что рождается сотня разновидностей тела поста и разные наборы параметров в каждой. У каждого клиента есть набор обработчиков для этих разновидностей.
Вопрос в том, а как избежать путаницы в этом? Ну, т.е. куча атрибутов у этого JSON, куча клиентов (ещё и с разными настройками) это по разному визуализируют. И всё в одном "неймспейсе". Как избежать вырастания этого в некий namespace hell?
По идее может быть так (рассуждая в парадигме MVC): где-то хранится идентификатор модели, есть аналог "иерархии наследования" моделей. Модель знает, какие view она поддерживает. Есть также аналог "иерархии наследования" View. А может быть duck typing: если view нашло то, что ей нужно в модели - показывает (ну, соответсвенно, может и ошибиться иногда).

Тут хочу подчеркнуть, что подобные фичи делаются чисто клиентами, ноду это не затрагивает вообще. Аналогично нода ничего не знает о значении разных реакций, это тоже делается на уровне клиента. И я хочу поощрять построение именно такой архитектуры. Нода должна быть как можно более универсальной (если это не в ущерб скорости и юзабельности). И, в последствии, ноду можно будет использовать и для других приложений, не только для ФБ-подобной соцсети.

👍

👍1👎1
To react or comment  View in Web Client