Задать вопрос
  • Как работать с БД из Vue компонентов?

    Robur
    @Robur
    Знаю больше чем это необходимо
    разверните теперь еще и api. Например на express - проще всего.
    Ответ написан
    2 комментария
  • Стоит ли хранить frontend 3 внешне похожих проектов в 1 репозитории и как с этим жить?

    Robur
    @Robur
    Знаю больше чем это необходимо
    положите все общее в отдельный пакет, пилите там все и расшарьте между проектами.
    Пакет можно хоть как организовать - от npm и bower до своего велосипеда
    Ответ написан
    Комментировать
  • Какой backend лучше всего использовать с React.js/Redux?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если хочется везде js то возьмите nodejs+ express. Вполне себе норм.

    Если еще класснее - apollo graphql, но эти технологии в стадии "сначала попотеть чтобы все засетапить а потом уже получать удовольствие"
    Ответ написан
    Комментировать
  • Как реализовать колесо фортуны, с добавлением пользователями монет?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Как я понял это нужно +math.random, java, и html или php.


    Правильно поняли только не Java а JavaScript. Можно сделать и на Canvas и на SVG. Копать в направлении изучения программирования или поиска исполнителя.
    Ответ написан
    Комментировать
  • Нормальная ли практика, делать вложенность методов .map() в компонентах React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    нормально.
    Нет особой разницы как вы выводите список, через map или как-то еще. Если вам нужно вывести все эти 20? компонентов - вы их должны вывести и основные тормоза у вас будут не во время работы .map а во время рендеринга этого всего на страницу и обновления потом. Используйте стабильные Id, если сильно переживаете.

    О производительности надо беспокоиться когда что-то начинает тормозить. Ну или хотя бы тогда когда вы сделали профилирование и что-то вам там не понравилось.

    Если прямо очень-очень хочется сделать все максимально оптимально - возьмите mobx и mobx-react с его бесплатной оптимизацией из коробки, и разбейте все на достаточно мелкие объекты и компоненты.
    Ответ написан
    1 комментарий
  • Как изменить текст всплывающего предупреждения required pattern?

    Robur
    @Robur
    Знаю больше чем это необходимо
    подробная инструкция с несколькими вариантами ответа есть тут: lmgtfy.com/?q=change+input+required+pattern+message
    Обратите внимание на шаги слева - они очень важны и их нужно выполнить все и не пропустить ни один.
    Ответ написан
    Комментировать
  • Почему данный post запрос выдает 404, хотя роутинг маршрута есть?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Путь у вас не /tasks/${id} а /users/tasks/${id}
    Вот это еще почитайте: https://expressjs.com/en/guide/debugging.html
    Ответ написан
    Комментировать
  • Где получить быстрые консультации от разработчиков?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если готовы заплатить деньги - то вот например: https://www.codementor.io/
    не уверен насколько там разработчики именно "кишат", но думаю что это не главное ваше требование
    Ответ написан
    Комментировать
  • А существуют ли новые языки, которые компилируются в нативный JS, вроде как JSX и ES6 при помощи Babel?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Из языков - Typescript
    Из фреймворков - ничего лучше react/angular/vue. Пишите свой велосипед.

    Это если вы хотите работать.

    Если хотите развлекаться в свое удовольствие и растить бороду - то вам уже накидали много вариантов что можно скомпилить в JS, есть много всего, от gwt до llvm + ecmascript (на которых даже линукс скомпилировали и запустили в браузере еще сто лет назад)
    Ответ написан
    Комментировать
  • Как правильно структурировать реакт проект?

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    Возможно, но судя по вопросам вам еще во многом предстоит разобраться. Вряд ли вам кто-то будет тут писать конфиги nginx и вебпака.
    Гуглите react/vue production build.
    и скорее всего еще пригодится роутинг в аппах, history api и как настроить nginx чтобы он по всем роутам которые есть в приложении отдавал нужный js, а при обращении к css/картинкам - отдавал их.
    еще есть codesplitting, чтобы грузились только нужные части приложения но для начала сделайте все одним js файлом, чтобы понять как оно все работает.
    Ответ написан
    2 комментария
  • Как определить, что окно браузера потеряло фокус?

    Robur
    @Robur
    Знаю больше чем это необходимо
    window.onblur = () => console.log('noo')
    так же вот эта ссылка полезна: https://developer.mozilla.org/en-US/docs/Web/API/P...
    Ответ написан
    Комментировать
  • Как в ts распределить поля объека в другой объект?

    Robur
    @Robur
    Знаю больше чем это необходимо
    IComponentsList у вас по описанию может содержать любое свойство.
    и вы его пушите в IComponents, в котором хотите "строгое" описание. Это несовпадение типов и потенциальный баг от которого вас компилятор честно защищает -иначе у вас в рантайме в components в Main может быть совсем не то что написано в типах.
    самым правильным будет добавить индексную сигнатуру в IComponents.

    Но если вы уверены в себе и хотите заставить компилятор вам поверить, можно сделать следующее:
    this.components[componentKey as keyof IComponents].push(entity.components[componentKey]);

    или
    (this.components as any)[componentKey].push(entity.components[componentKey]);

    или еще каким то образом подавить компилятор в этом месте.
    Ответ написан
    2 комментария
  • Какое направление выбрать для входа в разработку и есть ли этот самый выбор?

    Robur
    @Robur
    Знаю больше чем это необходимо
    джуном Java после 2-3 месяцев это большое чудо.
    джуном JS после 2-3 месяцев это маленькое чудо.
    Пахать эти 2-3 месяца придется по 12 часов в день чтобы было хоть что-то показать и была вероятность убедить будущих работодателей что вы реально можете учиться, быстро и сможете приносить какую-то пользу не через 3 года а хотя бы через полгодика.
    Лучше найти варианты куда устроиться заранее, попробуйте поискать и поймете насколько это для вас реально.

    Еще вариант - заехать на хорошо подвешенном языке, с минимальными знаниями заболтав интервьюверов. Или куда-то по знакомству.

    Самые простые и более реальные варианты - в QA (в ручное тестирование) или в верстку (но от вас могут захотеть сразу многое, надо искать варианты), чтобы был запас по времени и возможность учиться дальше.
    Ответ написан
    Комментировать
  • Какую библиотеку запросов использовать в node.js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    request-promise обертка над request, у которого есть работа с прокси
    https://github.com/request/request#proxies
    Ответ написан
    Комментировать
  • Как правильно работать с сессиями в reactjs?

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

    Так конечно никто не делает, есть понятия аутентификации и авторизации, сессия устанавливается после аутентификации (пользователь подтверждает что он - это он) и потом этот пользователь авторизуется с каким-то правами и в сессию каким-нибудь подходящим образом ставятся атрибуты авторизации, в простейшем случае - роль пользователя (админ/юзер). Эти атрибуты фронт может запросить у бэка отдельным запросом или получить в ответе на /login.

    Не очень понятно что значит "запрос для входа пользователя" и "запрос для входа менеджера" -
    у вас предполагается что пользователь будет нажимать на разные кнопки "войти как менеджер" и "войти как пользователь" или что?

    Нормально так:
    Кнопка для логина - одна.
    запрос аутентификации - один.
    сервер отвечает ошибкой или успешным ответом. Сама сессия ставится кукой, эта кука по хорошему должна быть httpOnly и из js кода не доступна. С ней работает исключительно бэкенд и так как хочет.
    Аппа из ответа сервера (в body) либо сделав отдельный запрос (типа /currentUser) понимает что это за пользователь - менеджер или обычный и сохраняет это куда-то себе. В случае реакта это с большой вероятностью стор. Можно в localStorage чтобы при перезагрузке читать сразу оттуда.

    Дальше аппа просто смотрит в стор в нужные моменты чтобы понять что пользователю показывать что нет.
    Все права на запросы бекенд разруливает на основе сессионной куки которая приходит с каждым запросом автоматически. То есть сессии как таковой фронт вообще никак не касается - его дело - вызывать login/logout, получить от бэка инфу о текущем юзере и правильно обрабатывать 401.

    Можно сделать и более сложные варианты - без куки, с каким-нибудь токенами и прочим, но скорее всего вашему фронтэндщику еще рано.
    Ответ написан
    Комментировать
  • Убрать hash и вернуть url без #, как?

    Robur
    @Robur
    Знаю больше чем это необходимо
    a.addEventListener('click', function () {
    	setTimeout(() => history.replaceState({}, '', locationWithoutHash))
    })


    после этого ссылка при наведении мыши вместо http://site.ru/#portfolio покажет http://site.ru/portfolio#portfolio но с этим можно жить (и даже нужно чтобы анкоры продолжали работать), зато страница проскроллится куда вам надо и в адресной строке будет http://site.ru/portfolio
    Ответ написан
  • Где хранить данные пользователя?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Есть два варианта:

    1) хранить роль там же где у вас хранится пользователь (вы не указали откуда он берется - локальная бд, oauth, хз что еще) и получать роль как атрибут юзера в req.user
    2) сделать таблицу в своей базе где хранить роли для каждого пользователя - для каждого id хранить роли. при необходимости получить роль делать запрос в базу с id из req.user, получать роли и делать то что нужно.

    UI может получать роли или из токена (если например это OAuth/OpenID) или делать запрос на сервер при загрузке приложения/логине и получать роли оттуда.
    Ответ написан
    2 комментария
  • Какая на ваш взгляд лучшая система мониторинга удаленных сотрудников?

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

    Если хотите больше KPI чтобы обосновывать свои решения - то для вас возможно подойдет как раз вариант с jira/etc, можно отмечать начало работы над задачей, окончание, вести учет сколько задач закрыто/переоткрыто среднее время выполнения, можно просить ставить estimate и сравнивать с реальным потраченным временем и так далее.
    Это потребует хорошей дисциплины и достаточно грамотной формализации работы, но вполне реализуемо.
    При приеме на работу сразу говорите что работать будем вот так.
    Ответ написан
    Комментировать
  • Что идет вначале Frontend или Backend?

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

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

    Так же есть разные методологии и подходы, например не разделение на фронт и бек команды а разделение на фича-команды. Когда одна команда пилит сразу и фронт и бек и что там еще нужно чтобы выкатить фичу в релиз.
    Ответ написан
    Комментировать