Pull to refresh

Google+ и теория множеств

Reading time 3 min
Views 2.6K
Думаете, у Бога нет чувства юмора? Вы посмотрите на утконоса)После недели использования новой социальной сети от Гугла я ощутил всю прелесть идеи разделения кругов общения. Действительно, довольно удобно делиться новостями и мыслями только с теми людьми, которым они будут интересны. Однако, в текущей своей реализации, круги, как инструмент разграничения доступа, неидеальны. В качестве примера приведу ситуацию, которая, я уверен, возникала у пользователей Google+ уже многие сотни раз.

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

Теперь представьте, что вы хотите поделиться ссылкой на техническую статью с Хабрахабра. С кем стоит её расшаривать? С кругом «Программисты»? Пожалуй, стоит, но, с другой стороны, у вас в этом круге могут быть и англоязычные программисты-коллеги, которым статья не будет понятна. Значит, нужно расшаривать с кругом «Русскоговорящие»… но там полно людей, которые от программирования далеки. Выходит, нужно создавать отдельный круг: «Русскоговорящие программисты».

Недостатки текущей реализации кругов

Основные круги, оперирующие общими понятиями типа «Киевляне» и «Друзья», не будет проблемой создать и поддерживать: их вряд ли наберется больше 10 штук. А вот если вы начнете создавать круги с более узкими критериями, вроде «Русскоговорящих программистов» или «Друзей из Киева» (назовем их производными кругами), то количество таких кругов может быстро вырасти — в теории, до 2n, где n — количество основных кругов. Объем ручной работы в этом случае сильно возрастает, ведь каждого нового человека нужно вносить во все подходящие круги (как основные, так и производные); а при добавлении нового производного круга, в него также нужно добавлять всех подходящих людей. При удалении человека из основного круга нужно будет также удалить его и изо всех производных кругов.
Таким образом, ручной микро-контроль доступа — слишком трудозатратное занятие.

Каким могло бы быть красивое решение

Круги, по сути, уже являются множествами людей. Рассмотрим, как добавление двух простейших операций теории множеств могло бы решить проблему, описанную выше, добавив некоторые бонусы.

Объединение

Эта операция уже присутствует в Гугл+. Достаточно при расшаривании добавить несколько кругов — и пост будет виден всем людям, которые состоят хотя бы в одном из кругов.Пересечение русккоговорящих и программистов

Пересечение

Применяя операцию пересечения на нескольких кругах, мы получаем людей, которые одновременно состоят во всех из них. Добавление этой операции разрешило бы описанную во вступлении проблему. Теперь достаточно было бы иметь и поддерживать только основные круги, а производные круги получать динамически, как пересечения основных кругов. То есть, чтобы расшарить техническую статью с Хабра, нужно было бы выбрать пересечение кругов «Программисты» и «Русскоговорящие».

Разность

При помощи этой операции можно выразить один круг через другой. К примеру, если у вас есть отдельный круг «Женщины», то, чтобы из любого множества получить подмножество, содержащее только мужчин, достаточно вычесть из этого множества круг «Женщины».
Разница друзей и женщинУдобно, например, если хотите позвать друзей на мальчишник :) Также эта операция могла бы использоваться, чтобы показывать пост вообще всем, кроме определенного круга — к примеру, ссылку на tsya.ru расшарить на Public, минус круг «Грэмэ-наци» :)

Реализация

Гугл мог бы реализовать такие операции разными способами. Например, при создании круга предложить создать его как динамический результат операций над другими кругами. Другой подход — при выборе области видимости поста добавить что-то вроде операторов, по подобию операторов гуглопоиска: +«Друзья» -«Женщины».
И, конечно же, такая фича должна быть либо по умолчанию выключенной, либо никак не выделяться в интерфейсе, чтобы не перегружать его.

Напоследок

Несмотря на то, что первым, о чем я подумал, когда увидел круги Гугл+, была мысль об операциях из теории множеств, я никак не могу претендовать на авторство идеи. Даже в своей ленте на Гугл+ я уже видел что-то подобное. Наверняка и в Гугле эту идею уже взвешенно обдумали, и либо решили реализовать позже, либо решили, что и без этой фичи кругами можно пользоваться. Лично я надеюсь, что в каком-то виде хотя бы операцию пересечения в конце-концов добавят.
Tags:
Hubs:
+129
Comments 148
Comments Comments 148

Articles