• Когда использовать useCallback, useMemo и useEffect?

    @LEXA_JA
    useEffect - это хук, который позволяет использовать сайд эффект. В классах его аналогом было использование componentDidMount, componentDidUpdate и componentWillUnmount. В нем можно делать подписки, отправлять запросы управлять анимацией и т. д.
    const [data, setData] = useState(null);
    
    useEffect(() => {
      const controller = new AbortController()
      fetchData(controller.signal).then(setData)
    
      return () => controller.abort()
    }, [fetchData, setData])


    useCallback и useMemo предназначены для оптимизации. useCallback получает на функцию и массив аргументов, и возвращает одну и туже функцию, до тех пор, пока аргументы не изменились. useMemo отличается тем, что он возвращает не саму функцию, а результат её выполнения. По большому счету они являются взаимозаменямыми.
    Таким образом, useMemo используется для сохранения результатов тяжёлых вычислений, например обработка массива.
    const data = useMemo(() => array.map(mapper).filter(predicate).reduce(reducer), [array])

    А useCallback используется, когда важна постоянность ссылок на функцию. Например, когда мы передаём ссылку в компонент, который использует React.PureComponent или React.memo, или, когда функция используется в качестве аргумента в других хуках
    const handler = useCallback(() => {
      // что-то сделать 
    }, [])
    
    useEffect(() => {
      handler(value)
      // если не использовать useCallback, эффект будет срабатывать постоянно 
    }, [handler, value])
    Ответ написан
    1 комментарий
  • Сколько времени можно думать над оффером?

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Спроси у работодателя. У каждой позиции это совершенно разный разброс. От 0 до года.
    Ответ написан
    2 комментария
  • Сколько времени можно думать над оффером?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    пару недель, нормальный лаг, откликаться желательно в течение первой недели, дальше отмазка и продление времени
    Ответ написан
    Комментировать
  • Что такое CORS?

    @DrVolk
    Все ответы из серии лучше бы молчал... Смысл повторять то, что написано в википедии. Вам в вопросе человек явно указал - НА ПАЛЬЦАХ, а они ему про стандарты... Дали бы просто ссылку на MDN - там самая лучшая документация обо всём: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
    На русском тоже есть статьи: https://grishaev.me/cors

    Вот моя текущая проблема, объсняю на её примере:

    На нашем сервере (Сервер А) размещается Ангуляр приложение (DAPP), представляющее собой интерфейс к Ethernet смарт-контракту, который грубо говоря является нашим бэкендом.

    На стороннем сервисе (Сервер Б) запущен http-интерфейс для доступа к нашему контракту (фактически это шлюз в сеть Ethereum). Это бесплатный сервис, к которому у нас нет доступа (Infura).

    Мне нужно из моего DAPP, запущенного в браузере пользователя и которое загрузилось с Сервера А, делать http-запросы на Сервер Б, и тут в браузере выскакивает CORS и кричит НИИИИЗЯЯЯЯЯЯЯЯ! Причём в Chrome всё ок, а в долбаном тормозном Firefox (господи, сократи число пользующиегося им идиотов, чтобы он скорее издох) вылетает ошибка. Ибо, как завещает CORS, негоже JS коду, загруженному с одного адреса, делать http запросы на другой. Причём CORS устроен так, что эта ошибка не дебажится с помощью JS - типа для того чтобы это ограничение не смогли никак обойти. Поэтому какие бы я не прописывал Серверу А заголовки 'Allow-Origin', это ничего не меняет. В Гугле уже осознали весь идиотизм ситуации и в новых версиях Хрома уже не блочат всё подряд, как раньше, пропуская “простые” запросы (GET/POST), остальный браузеры пока тупят.

    ПС. Проблему решили запуском прокси сервера, который добавляет в ответы от Сервера 2 заголовки Access-Controll-Allow-Origin с адресом Сервера 1. Тоесть Сервер 2 должен сказать браузеру, что он доверяет коду, загруженному с Сервера 1. Вот и весь CORS.
    Ответ написан
    1 комментарий
  • Что отвечать на собеседование когда спрашивают про нарушение сроков задачи?

    php666
    @php666
    PHP-макака
    Какой ответ ждут от разработчика?
    примерно такой:
    Ваше благородие! Виноват! Исправлюсь! Не велите казнить! Обязуюсь не спать трое суток, а решать задачу!

    А знаешь почему? Потому, что 95% из вас - терпилы по жизни.
    Я вообще не понимаю, как в мире IT, в разработке, можно говорить о каких-то сроках. Тривиальная ошибка может стать ступором на неделю - легко!
    Это землекоп или укладчик кирпича может объективно говорить о сроках, там +/- процессы длятся одинаково. В IT - нет.

    Не работайте там, где сроки горят. Полно мест, где нет никаких горящих сроков, где вас не заставляют лезть вон из кожи. Читай: ebanoe-it.ru/2020/12/28/right-way/
    Ответ написан
    3 комментария
  • Можно ли отказаться от ТЗ?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Говорить что не делаете тестовых заданий и они просто пойдут искать следующего кандидата
    Ответ написан
    Комментировать
  • Можно ли отказаться от ТЗ?

    vabka
    @vabka
    Токсичный шарпист
    Да. Но это будет равносильно отказу от собеседования.
    Но это не значит, что вы не сможете потом с этой компанией работать в будущем.

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

    mtix
    @mtix
    Front-end developer
    Деструктуризация и стрелочные функции ES6: https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Что за синтаксис?

    acrossoffwest
    @acrossoffwest
    Web-разработчик
    Ещё будет полезно почитать про ES6: https://habr.com/post/313526/
    Ответ написан
    Комментировать
  • Что за синтаксис?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Комментировать
  • Стратегия поиска решения?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    можно стратегию привязать к времени поиска решения, к каждому следующему этапу переходить после окончания лимита времени на поиск решения. например:
    за 5 минут не нашел ошибку сам в коде, начинаешь логи дополнительные выводить
    через 15 минут в логах ничего не прояснилось начинаешь гуглить,
    за 20 минут чтения ссылок в гугле не нашел ответ, начинаешь задавать вопрос коллегам
    ничего с коллегами минут за 20 не получилось, обращаешься к сообществам
    если таким макаром проблема не решена часа за 2, то или забиваешь на проблему, и переключаешься на другие задачи либо меняешь подход/фреймворк/работу)
    Ответ написан
    Комментировать
  • Стратегия поиска решения?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Нет какого либо четкого алгоритма, ситуаций много, не всегда всё идет по одному плану. Прежде всего очень помогает код ревью, когда читаешь код по строчкам и прокручиваешь в голове всё что делает каждая строчка, мысленно моделируя выполнение кода в голове. Во время дебага внимательно читайте сообщение об ошибках. Если бэкэнд на php то очень полезен xdebug, если фронтенд, то консоль браузера. Далее ведем цепочку вызовов от места, где всё упало пока не найдем место, где начало падать, ставим точки остановки, тестируем, исправляем. Если ошибка не понятна, то тогда уже гуглить. Обычно в контексте ошибки, упоминаемой функции\ компонента, в результатах поиска появится всё что нужно: гитхаб, стэковерфлоу, тостер и другие.
    Ответ написан
    Комментировать
  • Какую площадку для фриланса выбрать для фронта?

    nicepotato
    @nicepotato
    Дизайн всего (ну почти)
    На апворк луче идти не сразу, поработайте немного на русских для начала
    Ответ написан
    Комментировать
  • Как добавлять посты на сайт node.js?

    mmmaaak
    @mmmaaak
    Как это примерно делается, какими инструментами?
    Головой и руками.

    Вы сами перечислили все необходимое, express + mongo, более чем достаточно для реализации. Дальше гуглите как в экспрессе сделать авторизацию, обработку данных формы и сохранение их в вашу бд
    Ответ написан
    Комментировать
  • С чего начать раскрутку психолога?

    Привет

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

    2) Если это маленький город - то можно через директ по прямым запросам.

    Учитывая количество спама даже по 100% платным запросам (его там 99.9%) платить за директ в городах с большой конкуренцией - это глупо. Можно дорого нагнать трафик, а выхлопа никакого не будет.
    Ответ написан
    4 комментария
  • С чего начать раскрутку психолога?

    zamboga
    @zamboga
    Бизнес-аналитика, фин. моделирование, дашборды
    1. Быстро: лендинг + РСЯ/КМС + контекстная реклама + таргетированная реклама с посадкой на сайт + реклама сайта в чужих группах + ремаркетинг (ретаргетинг)
    2. Долго: группы в соцсетях (Фейстбук/Инстаграм/Вконтакте/Одноклассники) + раскрутка групп + таргетированная реклама с посадкой в группу + реклама своей группы в чужих группах
    3. Долго: email-маркетинг
    4. Долго: блог на сайте (он же заодно даст и SEO трафик)

    С 1 вы получите клиентов сразу, но дороже, чем 2-3-4. При этом через 2-6 недель стоимость трафика снизится→стоимость клиента тоже упадет.
    2. Будет дешевле в долгосрочной перспективе, но вы получите клиентов через 3-6 месяцев после старта проекта.
    3. Очень дешево, но срок тоже долгий, от 4-6 месяцев.
    4. Практически бесплатно, если контент генерите самостоятельно. Срок самый долгий, от 6 мес.

    Итого, я рекомендую делать так:
    I. Cделать лендинг
    II. Запустить трафик на лендинг (см. п. 1)
    III. Параллельно писать контент для блога/email-маркетинга/групп в соцсетях
    IV. После минимального контента (хотя бы 10 постов) запускать раскрутку групп + продолжать генерировать контент (не менее 1го поста в сутки)
    V. Постить контент в ваш блог (для SEO)
    VI. Сделать отдельные лендинги по информационным запросам, делать на них посадку с РСЯ/КМС, предлагать лид-магнит, собирать email и запускать email-рассылку.
    VII. Постоянно измерять и анализировать связку "конверсия трафика в лида+конверсия этого лида в клиента" обязательно от каждого источника трафика в отдельности . Выяснять наиболее прибыльные и перспективные источники, и увеличивать на этих источниках бюджет, уменьшая его на других (или полностью отключая его).
    VIII. Не забывать про А/Б тесты рекламных объявлений/заголовков/картинок и элементов лендинга.

    Про SEO. Будете делать хороший контент на ваш сайт — SEO само придет. Я не рекомендую заниматься платным SEO, стоит относительно дорого, срок долгий (от 4-6 мес), гарантировать результат никто не может. При этом в любой момент поисковик сменит алгоритм и ваши позиции посыпались. Так что моё мнение — чем тратить бюджет на SEO, лучше потратить его на любые другие платные источники трафика, и только тогда, когда их ресурс исчерпан, и текущего органического трафика на сайт не достаточно — тогда уже платить за SEO.

    В любом случае, готовьтесь к расходам на десятки тысяч рублей в первые месяцы после запуска проекта.
    И главное, не спешите делать выводы по каждому источнику трафика раньше, чем будет хотя бы 500-1000 переходов с этого источника трафика и раньше, чем через 1-2 мес.
    Ответ написан
    Комментировать
  • Как сделать прелоадер для каждого изображения?

    Krasnodar_etc
    @Krasnodar_etc
    avito front
    В такой ситуации я бы давал секции с картинками минимальную высоту и ставил бы один прелоадер на всю секцию
    Ответ написан
    1 комментарий
  • Как сделать редирект на localhost:3000?

    Комментировать
  • Что нужно узнать перед тем, как изучать изоморфные приложения react-redux?

    miraage
    @miraage
    Старый прогер
    https://github.com/zeit/next.js/

    С его помощью можете сразу начинать писать приложения с SSR.
    Попутно разбирайтесь, как он работает. Так и придет понимание.
    Ответ написан
    Комментировать