• Что из себя представляет поиск по диалогам в мессенджере?

    @0x131315
    Быстрый поиск всегда осуществляется по индексу - специально подготовленному набору данных, содержащему только ключевые для задачи поиска данные, в сжатом формате, и размеченные определенным образом для быстрого доступа к записи.
    Индексы сегодня полностью обслуживают специальные поисковые движки, коих на рынке много. Велосипеды тут не нужны.
    Индексов может быть много - так можно изолировать непересекающиеся наборы данных, и избежать больших "общих" индексов.
    Если производительности одного сервера не хватает, применяют кластеры - поиск по индексам хорошо поддается кластеризации.
    Чтобы обновлять индексы нужно периодически выполнять переиндексацию - вычитывать полный набор данных и заполнять ими индекс. Это очень тяжелый процесс, поэтому обычно его делают редко и в малонагруженное для сервиса время.
    Чтобы можно было искать с учетом всяких прав и статусов сообщений, эти права и статусы сохраняются в тот же индекс как атрибуты, и участвуют в поисковом запросе. Так можно персонифицировать поиск.
    Чтобы индексы работали как в реальном времени и соответствовали данным приложения, на приложение навешивают хуки: пользователь скрыл сообщение - сработал хук и переиндексировал только одно это сообщение, что практически не дает нагрузки.
    Ответ написан
    2 комментария
  • В чем опасность регистрации/авторизации по номеру телефона?

    DevMan
    @DevMan
    обычно делается наоборот: сначала логин/пароль, затем уже код.
    иначе можно достаточно легко вас разорять на смс в никуда.

    архитектурно – это достаточно простая задача: пока не получили всех данных – ничего не делаем кроме показа формы.

    лично я терпеть не могу коды по смс, и считаю их антипаттерном: интернет может быть, а мобильной связи может не быть (у меня такое было не раз, и достаточно часто). лучше использовать другие способы otp.
    Ответ написан
    3 комментария
  • Как с помощью props.children отобразить неупорядоченный список на экране?

    lazalu68
    @lazalu68
    Salmon
    Раз "Создайте компонент MyList, который будет отображать один неупорядоченный список на экране", то может быть всё таки речь о том, чтоб было как-то так?:
    return 
        <ul>
        { props.children }
        </ul>
    ...
    
    <MyList>
    	<li>serial1</li>
    	<li>serial2</li>
    	<li>serial3</li>
    </MyList>
    <MyList>
    	<li>film1</li>
    	<li>film2</li>
    	<li>film3</li>
    </MyList>
    <MyList>
    	<li>book1</li>
    	<li>book2</li>
    	<li>book3</li>
    </MyList>
    Ответ написан
    3 комментария