emilov
@emilov
Фрилансер

Оцените качество кода?

Js начал изучать не так давно, но уже что то имею.. перидическии стараюсь соблюдать Design Pattern по книге JavaScript Шаблоны, в итоге написал не большое приложение с использованием шаблона Module, и паттерна проектирование MVVM,
прошу оценить код:
https://github.com/emilov2501/module-pattern
  • Вопрос задан
  • 417 просмотров
Пригласить эксперта
Ответы на вопрос 3
rockon404
@rockon404
Frontend Developer
1. А теперь главный вопрос. Зачем было в модуле ES6 реализовывать module pattern? В этом нет абсолютно никакого смысла. Практика практикой, но все же.

2. В наличии переменной posts так же нет никакого практического смысла.
const { data } = await HTTP.get('posts');
3. Функцию:
async function _getPostById(id) {
    const post = await HTTP.get(`posts/${id}`)
    return post
  }


Можно смело заменить на:
const  _getPostById = id => HTTP.get(`posts/${id}`);

То же можно сделать и с функцией _getPosts.
4. Где-то let, где-то var, где-то const. Никакой логики в предпочтении одного ключевого слова другому при этом нет. Почитайте современные гайдлайны airbnb, например.
5. Точки с запятой где-то есть где-то нет. Читать такой код неприятно.
Ответ написан
Комментировать
longclaps
@longclaps
В жизни ничего прекраснее не видел.
Пешите ещо.
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Поставьте eslint + плагин в Ваш редактор к нему - это поможет соблюдать единый стиль кода во всем проекте.
Как уже писал Антон Спирин - точки с запятой где-то есть где-то нет, глаза режет...
Опять же, module pattern только ухудшает код, как минимум лишним отступом, а еще ненужными _ в начале имен, что не export - то и так за пределы модуля не выйдет, мне приходится прыгать глазами по коду, чтоб понять, что Вы экспортируете.
Ну и так пару замечаний:
1. не используйте array.map если нет задачи получить новый массив, используйте array.forEach
плохо: https://github.com/emilov2501/module-pattern/blob/...
хорошо: https://github.com/emilov2501/module-pattern/blob/...
вообще жесть: https://github.com/emilov2501/module-pattern/blob/...

2. Если функцию можно переиспользовать - лучше переиспользовать, а не плодить в памяти 100500 функции делающих одно и то же:
https://github.com/emilov2501/module-pattern/blob/...

3. Подумайте над более осмысленными именами:
https://github.com/emilov2501/module-pattern/blob/...
если функция начинается с префикса get, fetch и т.д. - как то ожидается, что она что-то вернет, здесь же логичнее дать префиксы вроде show

4. избыточный код:
https://github.com/emilov2501/module-pattern/blob/...
https://github.com/emilov2501/module-pattern/blob/...
https://github.com/emilov2501/module-pattern/blob/...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы