Когда меня просят оценить код на Ангуляре, то всегда вангую непонимание Rx. Это одновременно самая сильная и самая слабая сторона Ангуляра. Сильная в том плане что это невероятно мощный инструмент. А слабая в том что порог вхождения в Rx крайне высок. Невозможно просто так взять, начать проект с RxJS, разобраться походу и в итоге сделать хорошо. Нужно заранее знать с чем имеешь дело. Я не знаю как объяснить эти принципы в двух словах, или дать какую-то формулу успеха.
Вот лекция, которая в своё время мне помогла:
https://www.youtube.com/watch?v=3LKMwkuK0ZE
Она по RxJS 5, но принципиально ничего не поменялось.
Это из того что сразу бросается в глаза почти на любом проекте, не только на вашем.
Из плюсов:
- понимание что такое компоненты
- плоская структура проекта
Из минусов (не считая Rx):
- отсутствие модулей
Я бы еще поставил под сомнение необходимость папок services и shared, но это скорее всего вкусовщина. Кстати, если у кого-то сейчас бомбануло от предыдущего предложения, можете плиз направить меня куда-то где бы это по-человечески объяснялось? А то я реально не понимаю зачем нужны эти папки, и зачем провайдеры, работающие с Http называть сервисами. Я так подозреваю что народ копирует эту идею друг у друга. Но могу быть с удовольствием неправ.