• Что бы вы сделали с недобросовестным заказчиком?

    Robur
    @Robur
    Знаю больше чем это необходимо
    тут все просто - или он хочет получить результат, тогда платит, или не хочет и не платит.
    вариант "хочет но не платит" выходит за рамки здоровых бизнес-отношений.
    Если работа не оплачена, то результат её - ваша собственность, если у вас в договоре не указано иное (надеюсь такого у вас нет :))

    Можете к вышеуказанным советам еще добавить "Если вас не устраивают результаты моего труда и вы не хотите их покупать, нет проблем. Тогда, чтобы их не потерять я буду вынуждена продать их другим лицам, которые могут быть заинтересованы и группе/сайте подобной тематики и приведенных пользователях."

    Получила в ответ классическое - "Жаль, впереди ещё много проектов".

    (За которые я вам тоже планировал ничего не платить) Конечно ему жаль.
    Ответ написан
    Комментировать
  • Разбор кода js (beginner)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Любому объекту в JS можно присвоить новые свойства и массив не исключение. в него можно напихать свойств помимо того что там лежит, но - не надо так делать. Лучше сделать отдельный объект.
    .
    pars[pars[i]] проверяет свойство с именем pars[i] в pars а не "весь массив"

    например если pars[i] = 'foo' эта конструкция проверит что pars.foo существует (больше нуля и вообще truthy)
    если она существует, то добавляем единичку. То есть если было pars.foo = 1 то станет pars.foo = 2
    Если не было - то создаем и ставим туда 1

    в итоге он насоздает в массиве свойств с именами слов которые в нем встречаются и значением равным количеству раз которое это слово встретилось.
    Ответ написан
    Комментировать
  • Как правильно перейти по защищенной ссылке с помощью Json Web Token?

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

    У вас код который получает токен, сохраняет его и больше ничего не делает, поэтому у вас больше ничего и не происходит.
    Дальше токен надо использовать.

    Как правильно написать код, чтобы клиент перешел по защищеному роуту с таким хэдером: < "Authorization", 'Bearer '+ localStorage.token) >

    Используйте headers при вызове $.ajax
    тут описаны детали:
    https://api.jquery.com/jQuery.ajax/

    Если вы ждете что дальше оно будет работать "как-то само" как с куками - не будет. Надо этот токен использовать "руками", добавляя в запросы к серверу.
    Ответ написан
    Комментировать
  • Каковы перспективы TypeScript?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Будет стандарт де-факто через несколько лет (3-5). Обычный Js конечно тоже останется, но будет нужен так же как сейчас нужено умение писать на vanilla js. Вроде бы он есть - но все давно и плотно пересели на фреймворки.
    Ответ написан
    Комментировать
  • Как протестировать корректность функций, записывающих в 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 комментария
  • Где искать помощников?

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

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

    Если вы хотите свой сервер mysql в интернет выпереть то конечно лучше не стоит.
    Ответ написан
    3 комментария