Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
dasha_programmist

Даша Циклаури

ex Software Engineer at Reddit TS/React/GraphQL/Go
  • 159
    вклад
  • 13
    вопросов
  • 200
    ответов
  • 40%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как проверить актуальность токена?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Перед запросом проверять token.exp с текущим временем, если устарел или устареет в течение запроса, то сначала запросить новый и сделать запрос.

    Тем не менее это лишь оптимизация фронтенда, в любом случае если токен невалидный или просрочен, то бэкэнд вернет 401

    P.S. как это сделать в конкретном случае - зависит от инструментария,
    • например Effector State Manager позволяет делать цепочку эффектов, в базовом эффекте может быть проверка
    • например Axios имеет interceptors, можно реализовать перехватчик запроса, который будет перед вставкой токена его проверять
    Ответ написан 25 авг. 2022
    Комментировать
    Комментировать
  • Как найти слово, гарантированно отсутствующее в наборе?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    - хранить набор слов или в hashset или в trie
    - выбирая хранения в префиксном дереве, далее генерируешь рандомно длину, далее идешь в глубь по уровням, стараясь или уйти от существующих ключей или останавливаясь на определенном уровне, который образует слово, но которое еще не записано в дереве

    a-n-c-h-o-r допустим это одна из ветвей дерева, во главе с буквой "а", ты можешь дойти до буквы "о" и, поняв, что такого слова еще нет "ancho" вернуть его как результат
    Ответ написан более года назад
    2 комментария
    2 комментария
  • Зачем в nextjs в Link делать a?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Нет, не обязательно.
    Но если тебе придется стилизовать ссылку, то стилизовать Link не получился, поэтому ты будешь использовать что-то вроде
    const StyledLink = styled.a`
    color: #f00;
    `
    
    <Link href={} passHref><StyledLink>My Link</StyledLink></Link>

    Не забывай про атрибут passHref в случае, если нужно прокинуть href стилизованной ссылке
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • В чем причина бесконечного ре-рендеринга компонента?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    потому что у тебя errorsState это объект и ты каждый раз в эффекте его обновляешь
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Организация правильной архитектуры?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Мне видится такая практика:
    - infra-repo: инициализационные скрипты, docker-compose, настройки для nginx, elk и так далее
    - repo per project: каждый проект имеет свой репо (бэкэнд, фронтенд, микросервис), в них уже лежат Dockerfile, .ci.yml настройка pipeline для данного проекта, описание шагов и так далее
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Почему поле заполнено, но срабатывает required?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    проблема в том, что ты не сбрасываешь состояние инвалидности, у тебя срабатывает oninvalid когда что-то не так, а когда все верно никакого хэндлера нет
    грубо говоря нужно что-то похожее на onvalid
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как добавить новый key value в JSON?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    1) добавить его в data
    data["user2"]=...
    2) сериализовать в байт-слайс json.Marshal
    3) сохранить байт-слайс в файл
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Golang какие есть способы создания счетчика?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    https://gobyexample.com/atomic-counters
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Пробуждения экрана смартфона при помощи JS возможно?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Да, возможно
    Ответ написан более двух лет назад
    5 комментариев
    5 комментариев
  • Как к телеграм боту привязать QIWI?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    читаешь доку АПИ на события у киви, регаешь вебхук.
    Киви на твой сервер шлет уведомления, ты по факту обработки запроса от киви отсылаешь с помощью любой либы для бота в чат сообщение. Это самый примитивный.

    При высоких нагрузках в миллионы запросов в секунду можно использовать брокер сообщений для развязки прямого воздействия обработчика хуков на телеграм бота :D
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как правильно организовать структуру запросов в Next.js?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    1. при сборке проекта webpack-ом получить данные с какого-то урла (гуглить async webpack operations, custom nextjs webpack plugin), положить их в файл на сервере, далее можно использовать через обычный require

    2. мы делаем так: в getInitialProps на сервере у контекста есть req, из него забираем по заголовку (прокидывает или cloudflare или можно самим в nginx) или через стандартный механизм IP адрес. Кладем в стор, выходим из getInitialProps
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как в "React"-е передать параметр компоненту по условию?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    <Page title="SOME TEXT" no_text={this.state.content === null}>


    UPD:
    <Page title="SOME TEXT" {...(this.state.content === null?{no_text:true}:{})}>
    Ответ написан более двух лет назад
    4 комментария
    4 комментария
  • Как открыть www.dhl.ru curl'ом?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    curl 'http://dhl.com/' \
      -H 'Connection: keep-alive' \
      -H 'Upgrade-Insecure-Requests: 1' \
      -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36' \
      -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
      -H 'Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7' \
      --compressed \
      --insecure -I
    
    TP/1.0 301 Moved Permanently
    Location: http://www.dhl.com/
    Server: BigIP
    Connection: Keep-Alive
    Content-Length: 0
    Ответ написан более двух лет назад
    4 комментария
    4 комментария
  • Для чего alert может пригодится в 2020?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    для обратной совместимости
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как сделать формулу подсчета страниц?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    var count = Math.Ceiling(45/16);
    цифры заменить на переменные
    Ответ написан более двух лет назад
    4 комментария
    4 комментария
  • Стоит ли готовиться к олимпиадам?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Любой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, побросать навоз, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать.

    Специализация — удел насекомых.


    Роберт Хайнлайн, Достаточно времени для любви, 1973
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как на nodejs правильно подтверждать платежи?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    вообще платежка должна слать уведомление (дёргать твой АПИ) при успешности или наоборот при отказе транзакции. Трафик должен быть или подписан ключем или проверяться на входной IP адрес
    Ответ написан более двух лет назад
    5 комментариев
    5 комментариев
  • Создание админ-панели для интернет-магазина на React. Где делать админку?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    делай на поддомене - проще будет проксировать тем же nginx, для реализации удобно использовать уже
    готовые решения
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как сделать приглашение в друзья?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    у тебя уже есть коллекции:
    1) пользователи
    2) друзья (ключ id пользователя, значение set id пользователей или лучше объекты с нужной информацией)
    делаешь 2 доп коллекции:
    1) входящие заявки (ключ - id пользователя к которому стучатся в друзья, значение - set пользователей которые стучатся, set чтобы избежать дублей)
    2) исходящие заявки (ключ - id пользователя который стучится к кому-то в друзья, значение - set id кому отправлены заявки)

    - создание заявки: транзакция (читаем от кого, читаем кому, если все ок, то добавляем 2 документа в коллекции)
    - получение статуса пользователя: читаем 2 документа и видим кому отправили, и кто нам отправил заявки
    - подтверждение заявки: транзакция (читаем от кого, кому, проверяем что пользователь есть, если все ок то удаляем 2 документа, редактируем 2 документа в коллекции друзья, 2 док-та потому что нужно обновить от кого и к кому добавлен друг)
    Ответ написан более двух лет назад
    3 комментария
    3 комментария
  • Как в c# создать множество чисел?

    dasha_programmist
    Даша Циклаури @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    string[] printer = {"jupiter", "neptune", "pangea", "mercury", "sonic"};
    if(printer.Contains("jupiter")) {
    // TODO
    }


    в твоем случае в массив пишешь числа, а дальше
    if (printer.Contains(a))
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • Следующие →
Самые активные сегодня
  • GNUBack
    • 10 ответов
    • 0 вопросов
  • nedosekinstanislav
    Stanislav
    • 7 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • alexey-m-ukolov
    Алексей Уколов
    • 7 ответов
    • 0 вопросов
  • Deita
    Deita
    • 4 ответа
    • 2 вопроса
  • Rsa97
    Rsa97
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации