@X0lera

Оценить приложение?

Помогите оценить приложение и ткнуть там где можно сделать лучше
https://github.com/BuG1K/task/tree/master/src/app
  • Вопрос задан
  • 91 просмотр
Решения вопроса 2
Тип лучше указывать не через конструктор примитива, а через тип string (тот что из TypeScript, с маленькой буквы).
url: String = '';

Вы не используете возможности RxJS. Этот кусок кода можно сделать иначе:
ngOnInit() {
    this.Preview.url
      .subscribe(new_url => this.url = new_url);
  }


Подписчик не будет уничтожен при OnDestroy компонента, а будет слушать новый урл до тех пор, пока не выгрузится из памяти сборщиком мусора. Правильнее было бы сделать вот так:

public previewUrl$: Observable<string>

ngOnInit() {
    this.previewUrl$ = this.Preview.url
}


<div class="preview" *ngIf="(previewUrl$ | async) as url">
  <img class="preview__img" [src]="url">
</div>


В сервисе так же (https://github.com/BuG1K/task/blob/master/src/app/... вы подписались на http запрос и дальше не используете RxJS. Все манипуляции можно было сделать в tap/map и вернуть поток, с которым удобно работать.
Ответ написан
search
@search
мама говорит что я особенный
Вот классный проект, который задаёт планку программирования на ангуляре https://angular-checklist.io/default/checklist/arc...

Можете пробежаться по всем пунктам и сравнить с тем что есть сейчас.

Как верно заметил Дмитрий Лузанов, сразу бросается в глаза непонимание принципов работы RxJS. Вот видео, которое помогло мне разобраться в этом деле: https://www.youtube.com/watch?v=3LKMwkuK0ZE . Там старая версия RxJS, но принципы не поменялись.

От себя добавлю, что хранить состояние системы в переменных сервисов (это я про items у ItemService) - это грабли. Не наступать на эти грабли поможет понимание RxJS (сорри, уже надоел, наверное, но в ангуляре без него никуда). И/или подключение NgRx.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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