Hard work pays off

counter.php?rockon404
Контакты

Достижения

Все достижения (61)

Наибольший вклад в теги

Все теги (38)

Лучшие ответы пользователя

Все ответы (1013)
  • Как сделать динамический вывод данных при вводе данных в input?

    rockon404
    @rockon404
    Frontend Developer
    Можно написать простой хелпер withLatest вроде этого:

    export const withLatest = request => {
      let last = 0;
    
      return (...args) =>
        new Promise((resolve, reject) => {
          const current = ++last;
          request(...args)
            .then(res => resolve({ isLatest: current === last, res }))
            .catch(err => reject({ isLatest: current === last, err }));
        });
    };

    async/await вариант
    export const withLatest = request => {
      let last = 0;
    
      return async (...params) => {
        const current = ++last;
        try {
          const res = await request(...params);
          return { isLatest: current === last, res };
        } catch (err) {
          throw { isLatest: current === last, err };
        }
      };
    };



    Использование:
    import Api from '../api';
    import { withLatest } from '../utils';
    
    const withLatestFetchData = withLatest(Api.fetchData);
    
    export const fetchData = query => async (dispatch, state) => {
      dispatch({ type: "LOADING_DATA" });
      try {
        const { isLatest, res } = await withLatestFetchData(query);
        if (isLatest) {
          dispatch({ type: "DATA_SUCCESS", payload: res });
        }
      } catch ({ isLatest, err }) {
        if (isLatest) {
          console.log(err);
        }
      }
    };


    Демо.
    В демо так же добавил debounce и небольшую вероятность завершения фейкового запроса ошибкой.
    Ответ написан
  • Что нужно иметь и знать в фреймворке React джуну?

    rockon404
    @rockon404
    Frontend Developer
    Хороший кандидат на должность Junior React Developer, по моему мнению, должен соответствовать следующему перечню требований:
    1. Хорошее знание JavaScript. В React разработке используется ES6 и большинство экспериментальных фич еще не вошедших в стандарт.
    2. Хорошее знание HTML и CSS. Кроссбраузерная верстка. Так же, хорошо иметь представление о том, что такое css-in-js.
    3. Web APIs. Умение работать с объектной моделью документа(DOM) и все эти XMLHttpRequest, localstorage, cookie, history и прочее.
    4. Хорошее знание API React. Вы должны хорошо знать React, знать его возможности, понимать основные концепции и уметь ответить на большинство типовых вопросов. Для этого достаточно хорошо изучить документацию, разобрать пару типовых проектов на github и попрактиковаться. Много полезной информации, приёмов и идей можно подчерпнуть из тематических статей и докладов. Так же, на просторах интернета можно найти подборки типовых вопросов, часто задаваемых на собеседованиях. В англоязычном сегменте их больше.
    5. Redux. Уверенное знание API. API библиотеки до боли пост. Знать, что такое промежуточное ПО и зачем оно. Понимать базовые концепции архитектуры Flux. Все это есть в документации и многочисленных курсах.
    6. Умение работать с менеджером пакетов npm на базовом уровне.
    7. Node.js. Хотя бы уметь написать простейший express/koa сервер, который будет отдавать ваше приложение и статику.
    8. Webpack. Базовые знания.
    9. Умение работать с git. Хотя бы знать и уметь примерять команды: init, clone, add, commit, push, pull, merge, checkout.
    10. Иммутабельность. Четкое понимание зачем это надо. Знание приемов иммутабельного изменения структур данных. Это есть в официальном туториале React.
    11. Статическая типизация TypeScrpt/Flow. Для начала хватит самых основ и способности понимать чужой код.
    12. Функциональное программирование. Хватит знаний полученных в процессе изучения JavaScript, а так же не помешает знать, что такое каррирование, чистые функции и рекурсия.
    13. Базовые концепции ООП. Хватит знаний полученных в рамках изучения JavaScript.
    14. Асинхронный код. Понимать как его правильно организовывать. Promise, async/await.
    15. Сетевые протоколы передачи данных. Вполне хватит базовых знаний о http/https, о том, что такое заголовки и какие они бывают. Хорошо знать о том, что такое websocket.
    16. За плечами должен быть хотя бы один учебный проект на React. Хватит типового тестового задания.
    Примеры таких заданий: 1, 2, 3(сайт может быть не доступен на территории РФ, советую отрыть через VPN и посмотреть), 4, 5. Если подобного проекта у вас нет, то будьте готовы, что потенциальный работодатель предложит вам выполнить тестовое задание и только по его результату вас, может быть, пригласят на техническое интервью. Если напишите хорошо, вас скорей всего пригласят.
    17. Желателен опыт создания типовых UI элементов. Например, чтобы не вызывало трудностей написать простой кастомный чекбокс. Куча примеров реализаций типовых элементов есть на codepen.

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

    Похожий вопрос.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (1)