Vue.js приложения с качественной архитектурой

мне прислали тестовое задания разработать todo приложения для приглашения на собеседования, условиям выполнения тестового задания помимо реализации функционала согласно тз было ещё и наличия качественно написанного кода, приложения я написал но мне сказали что качества кода не соответствует требованиям компании.

Можете дать ссылку на какой нибудь проект с грамотно организованной архитектурой и качественным кодом с комментариями со стеком технологий (vue.js, vuex, vue-router).

Проект мне необходим для обучения написания хорошо организованного кода


А еще лучше - создай PR в своем репозитории и дай ссылку, пусть знатоки Vue посмотрят и откомментируют

1 лайк

Выложи свой код на гитхаб, дай на него ссылку и попроси конструктивной критики


можно немного конструктивной критики ?

Прежде всего дисклеймер: я ничего не знаю ни про vue, ни про firebase. Более того, я даже не senōr developer.

Что бросилось в глаза:

  1. У тебя есть компоненты, в компонентах есть стили. Но при этом есть огромная папка styles, в которой лежат стили принадлежащие непонятно каким компонентам.
  2. router/index.js - компоненты используются либо как component: Home, либо как component: () => import('@/views/edit'). Почему по-разному?
  3. src/store - там лежит три файла: common.js, init.js и index.js. Как понять, какой из них главный, не заглядывая внутрь?
  4. В src/store/toDoList заметки типа “Удаляет Заметку” не несут вообще никакой нагрузки.
  5. Там же - firebase.database().ref(/note/${payload}).remove() - это же, по сути, работа с API, ее имеет смысл вынести в отдельный файл и абстрагировать, потому что сегодня это firebase, а завтра вы прикручиваете собственное API.
  6. src/store/init.js мне почему-то кажется, что инициализация firebase не должна быть в сторе.
  7. store/common.js - похоже либо на обработку состояния loading, либо на обработку ошибок. Ну так и назови файл соответственно.

Ну и опять же - я не знаю, как работает vue, но если ты в своей вьюхе используешь <nav-control></nav-control>, то почему на соседней строчке у тебя такой код?

      <li v-for="(item, index) in todoList" :key="index" class="list__item">
        <list-item :options="item" :id="index"></list-item>
      </li>

Почему бы не внести li внутрь list-item? То же с другими компонентами.

1 лайк