Задать вопрос
  • Как протестировать корректность функций, записывающих в MongoDB?

    Robur
    @Robur
    Знаю больше чем это необходимо
    - поднимаете тестовую базу (можно докер, можно https://docs.mongodb.com/manual/core/inmemory/). чистую или с нужными начальными данными.
    - вызываете ваши функции.
    - делаете запрос в базу, сравниваете ответ с тем что там должно быть.

    В вашем случае возможно есть смысл не запись в базу проверять а делать полное интеграционное тестирование - вместо запроса в базу дергаете нужные query из graphql. Так вы проверите всю цепочку. Дальше - вопрос адекватности тестов которые вы напишите.
    Ответ написан
  • Почему комп умирает от скрипта?

    Robur
    @Robur
    Знаю больше чем это необходимо
    он заблокирует поток пока не завершит работу.
    while(true) - будет работать бесконечно каждую секунду создавая сотни новых и новых вызовов api.newsfeed.get пока у вашего компа не закончатся ресурсы. .

    api.newsfeed.get НЕ будет ждать выполнения запроса как вы возможно думаете.
    Ответ написан
    Комментировать
  • TypeScript Generics: Переиспользуемый компонент?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Как и сказано в ошибке - Props - это дженерик, и нельзя написать <T extends Props>, надо писать <T extends Props<Something>>

    в list не надо передавать Props, в него надо передавать T который уже внутри использовать чтобы передать в Props
    что-то в духе
    function list<T>(props: Props<T>):
    Ответ написан
    Комментировать
  • Правильно ли создать моб.приложение на Node js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если в рамках ваших задач и ресурсов это оправдано - то "правильно". Если не оправдано - то "неправильно".
    Конкретнее только вы можете решить. Ну или рассказать вводные и задачи, чтобы можно было оценить со стороны.
    В целом - практика вполне распространенная последние годы.

    Из личного опыта - писал давно на Cordova, медленно и громоздко.
    недавно на ReactNative - все отлично, плюсы перед Cordova - скорость, рендер и другие вещи нативные, легко дописать нативных модулей если что-то не хватает, но если реакт вообще никак - то вариантов много, выше вам уже Антон Швец накидал варианты.
    помню что Ionic вообще не впечатлил но это было давно, сейчас скорее всего по другому.
    Ответ написан
    Комментировать
  • Как ускорить прохождение unit-тестов на JS?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Интеграционный тест с поднятием/сбросом двух баз данных в докер контейнерах и динамической загрузкой всех файлов аппы для построения контейнера DI - секунд 15 - инициализация всего этого добра, дальше сам suite, как повезет. секунд 10 в среднем (около 10 тестов внутри).
    Это запросы, записи в базу, получение ответов, построение проекций, запись во вторую базу и прочее.

    Юнит тесты - 20-70ms на suite, там до 10 тестов в каждом. Тайпскрипт + jest.

    Это на локальном ноуте где ide, браузер, разные виртуалки и так далее. На сервере быстрее.

    Если у вас 10 секунд на юнит тест - то что-то явно идет не так. Скорее всего инициализация окружения столько времени занимает, что там происходит - вам надо разбираться детально.
    Ответ написан
  • Как сделать переход между фотографиями в галерее?

    Robur
    @Robur
    Знаю больше чем это необходимо
    модал лучше сделать один отдельно, положите его в галерею, в галерее же храните в стейте id текущего фото которое нужно показывать в модале.
    при клике на фото ставьте этот id в id фото на котором кликнули и показывайте модал, передавайте ему этот id.
    при клике влево-вправо меняйте id на следующий/предыдущий, модал перерисуется с новым id, в модале берите нужный урл из списка с фото
    Ответ написан
    Комментировать
  • Что такое навыки программирования, "программистские скиллы", и почему они утрачиваются?

    Robur
    @Robur
    Знаю больше чем это необходимо
    кроме как в разговорном языке я не встречал упоминание этой группы навыков.


    Это и есть разговорная фраза, ничего конкретного. Конкретика в каждом случае своя.

    Вы разучиваетесь заниматься любым делом если им не занимаетесь.
    Если вы были программистом и стали менеджером - то перестаете уметь то что перестали делать и начинаете уметь то что начали. Что именно это за вещи - зависит от того что вы перестали и что начали, для каждого это свой набор.

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

    Есть еще знания и информация которую вы просто не знаете потому что забыли/не интересовались - но их восстановить куда проще - недельку-другую на чтение доков, просмотр кода и общение с коллегами и вы уже 90% нужного в мозг загрузили.
    Ответ написан
    Комментировать
  • Какими плагинами KeePass Вы пользуетесь и почему?

    Robur
    @Robur
    Знаю больше чем это необходимо
    KeePass пользуюсь уже лет 10+. Пользовался только плагином к браузеру, но недолго и переехал на 1password - он в миллион раз удобнее. Теперь в 1password все подряд учетки, которые не жалко потерять или легко восстановить, в keepass - важное, безо всяких плагинов.
    Ответ написан
    Комментировать
  • React refs и высота элемента ???

    Robur
    @Robur
    Знаю больше чем это необходимо
    console.log(this.windowRef.current.scrollHeight)
    Ответ написан
  • Как более точно определить местоположение пользователя при помощи Яндекс карт?

    Robur
    @Robur
    Знаю больше чем это необходимо
    через https://developer.mozilla.org/en-US/docs/Web/API/G... вы можете получить местоположение пользователя.
    Его потом использовать с картами чтобы найти адрес.
    Ответ написан
    Комментировать
  • Как хостить скрипт не являющийся веб сервером на хостингах типа heroku?

    Robur
    @Robur
    Знаю больше чем это необходимо
    сразу будет положен после первой отработки.

    Если ваш скрипт рассчитан на бесконечную работу, то "отработка" не произойдет.

    Heroku делает некоторые проверки чтобы понять поднялся ли сервер, и вырубит его по таймауту если нет, но возможно их можно отключить.
    Попробуйте одно из этого:
    - почитать доки насчет того как хероку мониторит процесс, возможно можно настроить свои проверки
    - может быть прокатит worker вместо web
    - можно просто открыть нужный порт, чтобы хероку успокоился, для этого не нужен flask или еще что-то подойдет что-то минимально простое, которое слушает порт и ничего не делает (или отдает пустой ответ если хероку нужен именно HTTP). Никаких причин к тому чтобы "скоро накрыться" у такой схемы нет.
    Ответ написан
  • Скорость преобразования данных от API?

    Robur
    @Robur
    Знаю больше чем это необходимо
    это нормально тратить до 3.5ms на подобные операции

    Вы занимаетесь преждевременной оптимизацией (погуглите)
    Ответьте на вопрос какие это проблемы создает в вашем случае - и станет понятно, нормально или нет.
    Я уверен что никаких :) и вряд ли создаст - так что нормально.
    Ответ написан
    Комментировать
  • По кнопке отображать данные разных массивов в компоненте?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Я так понимаю элементы одинаковые.
    Храните данные в сторе (vuex например), сделайте там геттер на получение текущего списка в зависимости от того на какую кнопку нажали, а в компоненте просто выводите текущий список из стора.
    Ответ написан
    Комментировать
  • Что нужно знать чтобы стать хорошим веб-программистом?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно быть хорошим разработчиком можно зная и половину из этого.
    Но зная хорошо.
    А можно "знать" список из 50 разных аббревиатур и даже не ужасного веб-программиста не тянуть.
    Ответ написан
    4 комментария
  • Чем в TypeScript отличаются обычная функция и стрелочная?

    Robur
    @Robur
    Знаю больше чем это необходимо
    c: () => void

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

    c(): void

    Это просто определение метода с именем с, без параметров и не возвращающая ничего..

    Соответственно как вы определите, так вам ide и показывает - свойство или метод.
    В работе разницы нет, но это два разных способа определить одно и то же.

    Стрелочных функций в вашем примере нет от слова совсем.
    Ответ написан
    Комментировать
  • Как просматривать камеры тех, кто находится на сайте?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Использовать браузерное Api. И вы же надеюсь понимаете что без согласия пользователя это не сделать?
    Ответ написан
    Комментировать
  • Как подключить файл js в другом файле js ( без сборщика), использовать потом данные во Vue?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Без сборщика - подключайте все в html руками и нужные переменные передавайте через глобальную зону видимости
    Ответ написан
  • С чего начать создание внутреннего сайта для гостей отеля (и стоит ли)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    С чего начать - посмотрите какая система стоит в качестве решения доступа к wifi в вашем отеле. Все что вам нужно это чтобы после логина она перенаправляла пользователя на ваш сайт.
    Дальше - вам нужен ваш сайт - делаете его абсолютно так же как и любой сайт в интернете ( и там же где-то в интернете его и размещаете). Если хочется - ограничиваете доступ только для посетителей отеля, например по IP.
    Гуглите не "внутренний сайт для отеля" а "как сделать свой сайт". Дальше - по обстоятельствам тема несколько большая :)

    Стоит ли - совершенно отдельный вопрос и никто вам без какого-то исследования на эту тему ничего внятного не ответит.
    Ответ написан
    2 комментария
  • Можно ли ограничить область видимости DOM для js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    ну если любые - то в айфрейм и заверните.
    Ответ написан
    Комментировать
  • Как правильно пользоваться Dev Tools - 1.120))?

    Robur
    @Robur
    Знаю больше чем это необходимо
    правой кнопкой - reveal in a sidebar. Там смотрите где лежит.
    либо мышкой наводите на таб с именем файла и смотрите полный путь
    Ответ написан