@n1ksON
мидл

Можете оценить тестовый проект на ReactJS + Redux?

Выполнил тестовое задание на стажировку в одну компанию. Они ответили, что проверять моё тестовое не будут (есть некие причины). Поэтому обращаюсь к бывалым, могли бы оценить проект. Хотя бы мельком гляньте, пожалуйста, чтобы я понимал, насколько я много говнокодю)
Репозиторий на GitHub
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
WblCHA
@WblCHA
1. Нет ни еслинта, ни преттиера.
2. Нет тестов.
3. Все коммиты без названий.
4. Почти все комментарии на русском. Да и большая часть описывает банальные вещи.
state[0] = state[index] // запись нового выбора на первое место
state.splice(index, 1) // удаление нового выбора с предыдущей позиции в массиве

5. Использование комментариев для функций вместо жсдока.
6. Мне лень разбираться, но sort тут не подходит разве?
spoiler
for (let i = 1; i < state.length; i++) { // сортировка от меньшего к большему по первому числу для возврата предыдущего выбора на правильную позицию
                    if (state[i].split(' ')[0] > beforeSelected.split(' ')[0]) {
                        state.splice(i, 0, beforeSelected) // запись предыдущего выбора на правильную позицию
                        break
                    } else if (state[i].split(' ')[0] === beforeSelected.split(' ')[0]) { // если первые числа равны проверка по второму числу
                        if (state[i].split(' ')[2] >= beforeSelected.split(' ')[2]) {
                            state.splice(i, 0, beforeSelected) // запись предыдущего выбора на правильную позицию
                            break
                        }
                    }
                    if (i === state.length - 1) { // если предыдущий выбор оказалася наибольшим
                        state.push(beforeSelected)
                        break
                    }
                }

7. Не используй деструктуризацию в аргументе функции, если используешь параметр лишь раз.
spoiler
const resize = ({ param }) => { // изменение select
    ...
  }

Это равносильно:
const resize = (obj) => { // изменение select
    const param = obj.param;
    ...
  }


8. Все тексты захардкожены прямо в коде.
9. Питон-стайл (где точки с запятой?).
10. Почему в папка types лежат компоненты, а не типы? Это, конечно, жс, а не тс, но сути это не меняет.

Короче, это так, беглый осмотр.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
kirbi1996
@kirbi1996
В редакс не залезал, по реакту глядя на код, все нормально вроде бы, единственное что бросилось в глаза у инлайн style пиксели писать не надо, там просто число передается. Ещё можно было конечно получше разбить папку компоненты. Допустим App оставить в корне, создать папку pages в ней страницу создать, а компоненты оставить в компонентах, но это уж так придирки
Ответ написан
@VladJs
нельзя мутировать данные в redux reducer, нужно делать через копию. Например:
{
...state,
width : action.width
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы