Задать вопрос
Контакты
Местоположение
Россия

Достижения

Все достижения (4)

Наибольший вклад в теги

Все теги (52)

Лучшие ответы пользователя

Все ответы (92)
  • Где хранить большой массив объектов в реакт приложении?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Мой взгляд, на истину не претендую:

    Я сторонник того, что на клиенте вообще не стоит хранить большие объемы данных. Т.е. запрашивает только те, которые нам нужны для работы/отображения в конкретный момент. Все фильтры/сортировка/пагинация на стороне сервера. Понятно, что это не всегда возможно, поэтому идем дальше...

    В хранении большого объема данных в редаксе не вижу ничего плохого, если они редко меняются. Если часто - неприятно, нужно поддерживать иммутабельность, затраты на garbage collector.
    Плюсы - быстрый доступ до данных, т.к. хранятся они в памяти.
    Минусы - поддержка иммутабельности и затраты на память.

    Если уж отходить от редакса - можно воспользоваться каким-то стором на основе мутабельных объектов, например mobx.

    Если всё это держать в памяти не хочется - то действительно можно взять IndexedDB. Хранится на диске, между перезагрузками сохраняется, асинхронное апи, есть индексы по полям. Нужно учесть, что на браузерах в режиме инкогнито может не работать или работать ограниченно (для предотвращения отслеживания).

    Ну и, конечно, вопрос в объеме данных. Просто 2к объектов - не то, чтобы сильно много. Вопрос, насколько тяжелых объектов.
    Ответ написан
    2 комментария
  • Как типизировать такой объект данных?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Нет, обобщенные типы можно использовать не только в функциях
    type SomeData<Data = any> = {
        data: Data[];
    }
    const a: SomeData<number> = {data: [1,2,3]};
    Ответ написан
    Комментировать
  • Как сделать калькуляцию строки в JS?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    1) В лоб и наименее безопасно - eval
    2) Чуть более замороченно - оборачиваем в функцию через new Function
    3) Замороченно, но интересно - распарсить строку, разбить на операторы и операнды и считать это всё с учётом приоритета операторов и скобок
    4) Скучно и обыденно - берём библиотеку типа mathjs и скармливаем ей
    Ответ написан
    Комментировать
  • Существует ли утилита для удобного просмотра обьектов или массивов?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    1) https://symfony.com/doc/current/components/var_dum... ( https://habr.com/ru/post/245623/
    )
    2) https://github.com/kint-php/kint или аналоги
    3) Настроить xdebug и начать нормально жить =)
    Ответ написан
    Комментировать
  • Как избавиться от "такого" кода?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Я бы посоветовал:
    1) Разбить код на функции с осмысленными названиями.
    Гораздо лучшее читаются короткие участки кода.
    Для примера, я бы вынес функции validateRequest, sendMessage, findAnswer. Перенести в отдельные функции/методы классы запросы к внешним сервисам (vk)
    2) Убрать неиспользуемые переменные. Зачем тут $GROUP_ID ?
    3) Не использовать однобуквенные переменные.
    Вместо `foreach ($VK_CONFIG_FAQ as $k => $v) {` лучше что-то вроде `foreach ($VK_CONFIG_FAQ as $questionPattern => $answers) {`
    4) Не дублировать строковые константы типа 'Бот не нашёл ответа на ваш вопрос!'. Лучше вынести в отдельную константу типа NOT_FOUND_ANSWER

    Ну и про PSR уже написали
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)