В приложениях с REST архитектурой существует ряд проблем:
• повторяющийся код при работе с состоянием приложения; • костыли и велосипеды при обработке результатов и состояний запросов; • отсутствие стандартного механизма кеширования полученных на клиенте данных; • одновременные запросы за одними и теми же данными; • сложности реализации pessimistic/optimistic обновления состояний.
В клаудных микросервисах Netcracker мы решаем эти проблемы с помощью GraphQl & apollo. Однако есть изрядное количество приложений, использующих классический REST подход для общения с сервером. Хорошим решением для них является Redux Toolkit Query.
Современное front-end-приложение на Angular должно включать в себя следующие характеристики:
Возможность использования типизированного JS — Typescript
Обеспечение удобства и производительности разработки с помощью HMR (hot module replacement);
Модульность приложений и возможность отложенной загрузки модулей (Lazy Loading);
AoT — режим (ahead-of-time), повышающий производительность приложения.
Существует много вариантов сборки, решающих эти задачи (angular cli, A2 seed и т. д.). Обычно они имеют сложную структуру, плохо настраиваются/расширяются и представляют собой монолит, который невозможно изменить.
В статье я расскажу, как совместить Angular 2+ с webpack и разобраться со всеми этапами сборки/разработки.