Задать вопрос
  • Linux для frontend developer`a?

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно и так, можно и в reducer, или actions. Действия с данными делать надо там где это уместно, а уместность зависит от того что именно вы делаете.

    Если эта логика только для данного компонента, чтобы привести данные из формата в котором они лежат в сторе к формату который нужен компоненту, и нет смысла класть фильтрованные данные в стор - фильтруйте в коннекте.
    Если эта фильтрация нужна на уровне данных в сторе (то есть профильтровать данные которые пришли откуда-то перед тем как их привести в формат который должен лежать в сторе) - фильтруйте в редьюсерах или экшенах.
    Ответ написан
    Комментировать
  • Можно ли использовать MobX с Apollo?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Можно.
    Apollo в своем кэше может хранить все данные приложения относящиеся к серверу (фактически это все кроме состояния UI и еще пары мелочей типа сессии пользователя)

    Так что в mobx просто становится меньше смысла, но совсем он не пропадает - если вам нужно зачем-то шарить состояние компонент друг между другом.

    Ребята в Apollo предлагают его же использовать как стор и обращаться к локальному состоянию с помощью gql так же как и к удаленным данным. Не уверен насколько такой подход реально удобен в работе с состоянием компонентов, но возможность добавить какие-то локальные свойства к данным весьма неплоха.
    вот тут можно почитать: https://www.apollographql.com/docs/react/essential...
    Ответ написан
    Комментировать
  • Является ли использование метода toComponent частью какого то соглашения?

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

    "вообще" соглашения такого нет, да и вообще каких-то общих практик за пределами рекомендованного в доках довольно мало.
    Ответ написан
    Комментировать
  • Как в React передать props в state полученные с помощью connect?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вам поможет https://reactjs.org/docs/react-component.html#stat...
    но на самом деле вам нужно использовать props напрямую, в state хранить только то что может поменяться в процессе работы самого компонента при неизменных пропсах
    Ответ написан
    Комментировать
  • Где хранить переиспользуемые интерфейсы typescript?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Законно, по крайней мере пока еще не запретили, но возможно мы к этому когда-нибудь придем.
    Храните как вам удобно - интерфейсы бывают разные, если это вообще глобальные - то в один файл в корне, но таких на самом деле обычно мало и больше тайп-конвертеры.
    Чаще всего интерфейсы описывают какие-то сущности, кладите их туда же где и код который отвечает за эти сущности.
    Например если у вас есть стор и в нем какие-то данные описанные интерфейсами - кладите рядом с данными и экспортируйте оттуда.
    Если есть апи которое возвращает данные и для этих данных есть интерфейсы - кладите рядом с апи. И так далее.
    Можно прямо в файлах с логикой, можно рядом в файле чисто с интерфейсами. Мне удобнее все в одном - так как если что-то меняется в интерфейсе то обычно меняется вместе с логикой.
    Ответ написан
    Комментировать
  • Как в WebStorm правильно использовать vue + node js в одном проекте? И несколько других вопросов по тематике?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1) очень странная штука - у вас гит сам по себе работает? Лучше создавать проекты через терминал, а не встроенными в вебшторм мастерами. По старинке - создайте папку, сделайте репу, инициализируйте npm, и все такое
    2) нормально. Располагаться на сервере будет как вашей душе угодно. Хоть на разных серверах.
    3) чтобы nodejs приложение работало нужна нода. Чтобы работало vue приложение - проще всего создать через https://cli.vuejs.org/ - там все будет уже для разработки вместе с вебсервером. Отдельный вебсервер надо только для продакшена.

    А гуглить все же полезно.
    Ответ написан
    Комментировать
  • Использование React в non-SPA?

    Robur
    @Robur
    Знаю больше чем это необходимо
    так же как и vue.
    подключаете js в котором инициализация реакт - приложения в нужный контейнер.
    Данные туда можно передавать по разному, я бы просто в js положил в глобальный объект какой-то.
    Ответ написан
    Комментировать
  • Стоит ли идти на работу верстальщиком писем, если хочу быть Front-endером, но пока не берут?

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    async foo() {
     // тут всякое
      await foo()
     //тут всякое другое
    }
    Ответ написан
    2 комментария
  • Как найти функцию, выполняемую генерацию токена для заголовка?

    Robur
    @Robur
    Знаю больше чем это необходимо
    поставьте брейкпоинт и задебажьте
    Ответ написан
    Комментировать
  • Почему на моём vps стоит 24 маска. Разве 32 не была бы безопаснее?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если вы поставите маску /32 - у вас там будет только один хост в сети а надо минимум 3 - ваш сервер, роутер, и broadcast. Так что сеть может быть как максимум /30. И хостеру придется для каждого пользователя такую сеть создавать и в каждую выставлять роутер по дефолту.
    При публичных IP смысла в этом нет - вы все равно будете способны их точно так же пропинговать, ровно как и любой другой адрес в интернет, зато адреса расходуются впустую.
    Ответ написан
    Комментировать
  • Как скрыть конфиги в js веб-приложении?

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

    через https://webpack.js.org/plugins/ignore-plugin/. Правда весь код который их использует сломается.

    Или попали в него но так, что бы юзер не смог их "прочесть"?
    Учитывая что сами модули, использующие эти конфиги, должны в финальном билде присутствовать.
    Тоесть мне нужно скрыть эти конфиги от возможности просмотреть их инспектором кода или путем выкачивания билд файла конечным пользователем, либо любым другим способом.

    Только на уровне "бабушкиной защиты" - можно сделать так что ваша бабушка не сможет, но всегда найдется тот кто сможет.

    Какой бест практиз существует в этом случае?


    варианта два - либо вы правильно проектируете систему и обеспечиваете защиту на стороне firebase или что там у вас и за счет грамотного разделения прав доступа, если это позволяет проект
    Вы же, я надеюсь, не используете в качества API токенов те которые дают полный доступ к базе? :)

    либо недостающее должен предоставить пользователь каки-либо образом.
    Ответ написан
    Комментировать
  • GraphQl или Rest api для интернет магазина?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Интернет - магазины не писал но с GraphQL работаю плотно последний год - и я бы взял его для такой задачи.
    Они хорошо ложатся друг на друга - GrapqhQL позволяет вам вытаскивать любые данные в том виде в котором надо клиенту и сделать это максимально продуктивно на сервере.
    Если взять Apollo Client то многие проблемы с кешем, оптимизацией запросов и прочим он решит за вас.
    К тому же всякие вещи в духе "добавили поле и через месяц выяснилось что где-то забыли код обновить" находятся сразу, особенно если вы пишете на TS
    Ответ написан
    Комментировать
  • Сверхбыстрая верстка -что быстрее adobe muse или react?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Самое сверхбыстрое - сохранить в JPG и на бэкграунд. Но с резиновостью будут некоторые проблемы.
    Ответ написан
    Комментировать
  • Событие если два элемента столкнулись?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Руками проверять, если вы их сами двигаете (getBoundingClientRect() и дальше пересечение прямоугольников - спросите любого школьника, вам расскажут)

    Если не сами и хочется прямо событие и браузер новый то https://developer.mozilla.org/en-US/docs/Web/API/I... но там возможно будет с ограничениями
    Ответ написан
    Комментировать
  • Почему можно переопредилить функцию, которая на входе требует иной сигнатуры?

    Robur
    @Robur
    Знаю больше чем это необходимо
    во первых, у вас код неправильный, должно быть видимо let foo: ( x: number ) => void
    потому что проверка типов это не просто сравнивание сигнатур функций - это проверка что один тип может быть приведен к другому.
    функция у которой нет параметра может быть вызвана в месте где ей передадут параметр, она просто его проигнорирует. То есть тип функции без параметров приводится к типу с параметрами.
    По факту, если вы вызовите foo(123) то она отработает нормально, что система типов и учитывает.

    попробуйте сделать наоборот и сразу получите ошибку:
    let foo: () => void = (x: number) => null
    То же самое если параметры будут не совпадать по типам
    Ответ написан
  • Почему не работает js для элементов, вставленных в документ с помощью innerHTML?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Раньше было live() для этого.
    https://api.jquery.com/live/
    теперь это устарело но можете почитать в чем принцип и как правильно использовать
    https://api.jquery.com/on/
    чтобы получить тот же эффект. Event delegation вам в помощь
    Ответ написан
    Комментировать
  • Как использовать регулярные выражения?

    Robur
    @Robur
    Знаю больше чем это необходимо
    ^(?:мини)\s([^]+)?
    поиграться и проверить можно тут https://regexr.com
    Ответ написан
    Комментировать
  • На чем написан фронтенд cloud.mail.ru (angular, react, vue)?

    Robur
    @Robur
    Знаю больше чем это необходимо
    на нем и написан. Там даже код не минифицирован, видимо до того чтобы сделать продакшен конфиг руки не дошли
    https://cloud-landings-static.hb.bizmrg.com/omega-...
    Ответ написан
    Комментировать