Задать вопрос
  • Можно ли получить предыдущий роут react-router-dom?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вам надо просто при переходе с registration на login не добавить а заменить роут

    было: /main -> /solvation -> /registration
    переходите на /login, становится: /main -> /solvation -> /login

    в этом случае все работает как надо автомагически.

    Заменить роут - смотря как вы его реализовали, если через то https://reacttraining.com/react-router/web/api/Lin...
    Ответ написан
    3 комментария
  • Как настроить компиляцию typescript в webstorm?

    Robur
    @Robur
    Знаю больше чем это необходимо
    5ddcbc1a69c50633815601.png

    tsconfig должен быть, если нет то вторая галочка, но я ее работу никогда не проверял
    Ответ написан
    Комментировать
  • Как осуществить размыкание анонимной функции?

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

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


    Если договорились об этом то да, если не договорились то нет. Внимание - вопрос! как вы договорились?

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


    Это уж для себя каждый сам решает - вопрос больше этически-филосовский.
    Ответ написан
  • Как исправить ошибку при работе React + Typescript?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вам надо добавить в описание стейта свойство cartItems.
    скорее всего в интерфейс myState:
    interface myState {
    cartItems: ItemType[]|
    }

    ItemType естественно надо правильный подставить
    Ответ написан
    Комментировать
  • Как правильно генерировать промокоды?

    Robur
    @Robur
    Знаю больше чем это необходимо
    1. Генерируете совершенно случайную строку с нужными параметрами длины/символов
    2. проверяете есть ли она в базе
    3. если да - то п 1.
    4. сохраняете в базу.

    Пожалуйста!
    Ответ написан
    Комментировать
  • Прототипы, хорошо или плохо?

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

    Так как вы - можно писать, на govnocod.ru это конечно не тянет. Так же "на прототипах" есть еще 50 вариантов как сделать то же самое.

    Но есть варианты лучше - чище код, легче поддерживается, лучше intellisense, разные разработчики пишут одинаково, разработка быстрее, компилятор/сборщик лучше оптимизируют и прочие бонусы.

    Вопрос стоит поставить так: по какой причине вы все еще пишете тот вариант у которого объективно больше недостатков?
    Я знаю только одну - лень/некогда/нежелание разобраться в новых возможностях и переучиться. Она не очень весомая.
    Ответ написан
    Комментировать
  • Как правильно работать со сложной структурой данных в React state?

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

    Однако же, если на странице мы хотим иметь массив из 20 элементов, то мы должны их всех добавить в state по одному, как поля, иначе при изменении одной буквы в одном объекте придется менять весь массив, что представляется весьма неэффективным.


    По какому критерию "неэффективности"? как вы это померяли, какие-то цифры есть? В современных аппах столько всего происходит что создать массив из 20 элементов ничего не значит. Заметьте что элементы массива вам не надо пересоздавать, только сам массив в котором 20 каких-нибудь ссылок. Сложить две строки в одну может быть затратнее.

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

    Для хранения данных "вообще" есть сторы уровня приложения, откройте для себя mobx - он позволяет хранить объекты любого уровня сложности, и при этом обновлять компоненты на сколько угодно малой области изменений. В примере выше, если у вас есть массив из 20 объектов, и вы поменяли какое-то поле в одном из них - то при желании можно сделать так чтобы перерендерился и обновился только тот div который это поле рисует и ничего больше. Если вы пришли с Vue то вам будет это совсем близко.

    насчет "сложные структуры и легко сделать ошибку" - возьмите тайпскрипт и забудьте о 99% опечаток.
    Ответ написан
  • Как заставить работать jest с jsx?

    Robur
    @Robur
    Знаю больше чем это необходимо
    вот тут есть пара вариантов, попробуйте
    Ответ написан
    Комментировать
  • Как сделать правильно и лаконично?

    Robur
    @Robur
    Знаю больше чем это необходимо
    нормальное.
    Удачи вам в яваскрипте с таким перфекционизмом.
    Ответ написан
    Комментировать
  • Выражение const self = this; в чем разница от this?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Почитать что такое this в JS и как оно работает.

    Кратко - там дальше наверняка self используется внутри функций которые вызываются откуда-то извне и для них this будет меняться, поэтому в self просто хранится ссылка на нужный объект, чтобы не потерять.

    Вообще так писали лет 5 назад, сейчас можно и без этого.
    для vue есть vue-class-component который делает код заметно лучше.
    Ответ написан
    Комментировать
  • Варезник для сайта, последствия?

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

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

    не знаю переписывали ли вконтакт на С, но можно посмотреть и по другому - до определенной точки им вполне хватало php. И вам до этой точки хватит.
    Вы уже точно знаете когда вы достигните этой же точки и вам перестанет его хватать?

    Если у вас больше академический интерес - "понятия не имею какое это имеет значения, но просто приятно будет знать что оно на 0.00001 мс в среднем быстрее", то возьмите GO - он модный и по слухам быстрый. как будет по факту - вам на самом деле не важно, вы вряд ли увидите эту разницу.
    Ответ написан
    4 комментария
  • Выбор правильного старта для написания микросервисов?

    Robur
    @Robur
    Знаю больше чем это необходимо
    https://microservices.io/ - много полезных мыслей про микросервисы.

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

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

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

    Как лучше распределить нагрузку между членами команды, и т.п.

    это уже про управление командой.

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

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

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

    Об этом стоит подумать. А что там будет - блог движок, чат бот, или еще что-то - вообще не важно.
    Ответ написан
    1 комментарий
  • Как типизировать функцию, которая возвращает функцию с параметрами?

    Robur
    @Robur
    Знаю больше чем это необходимо
    А что именно у вас сейчас не типизировано?
    тайпскрипт должен вывести тут все типы самостоятельно.
    Если вам надо интерфейс какой-то то смотря какой.
    например
    typeof getAnalytic
    ReturType<typeof getAnalytic>
    Ответ написан
  • Как добавить в реакт библиотеки, которые нельзя установить через npm?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Ответ написан
    Комментировать
  • Легально ли парсить indiegogo.com?

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

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

    Добавляйте работу по часам офлайн. Можете заранее это обговорить, что у вас такая-то и такая-то работа офлайн, и вы будете эти часы так же выставлять в счет но не более Х часов в неделю. Адекватный заказчик согласится.

    те прикидки которые выходят, выдают - на мой взгляд - пугающую цену.

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

    А то потом окажется что вы были правы в прикидках, а сумму сказали в три раза меньше потому что страшно было, и вот теперь сидите вторую неделю бесплатно работаете. Это не пугает? :)
    Ответ написан
    Комментировать