Чи підходить Angular та взагалі концепція SPA для нормальних проектів?
Осатаннім часм це дуже популярна тема, сам я переважно користуюсь JSF, колись робив це за допомогою Asp.Net та JSP/Servlets. Але останнім часом довелось зтикнутись з такими завданнями в яких такі технології, як JSF явно не кращій вибір, або взагалі безсилі. Тому довелось «доганятись» простим JS та jQuery. Тому такі теми, як SAP, Angular, ReactJS та JAMstack дуже цікавлять мене останнім часом.
Тут з’явилась цікава саття про Angular (dou.ua/...three-years-with-angular), але там коментувати в мене немає прав. Тому спробую задати питання тут. Тим більше, що вони виходять за межі одного фреймворка.
Отже питання:
1) Оскільки ідея SPA працювати на одній сторінці, значить все, що в принціпі вміє ваша програма має поступово підвантажуватись до пам’яті браузера? Якщо це не пару хелло ворлд екранів, це все здатно суттєво роздути пам’ять на клієнті. А можливостей звільняти(вивантажувати зайві скрипти), начебто в сучасних браузерах немає?
Тобто вони дуже не ефективні для серйозних програм з велигою кількістю різних екранів, функцій?
2) Який сенс взагалі у всіх цих складностях, з купою різних файлів, які генеруються ще в купу інших файлів, а ті іноді перекомпілюються ще в щось? Реальна програма в будь-якому випадку не може обійтись без back-end, так чи інакше там ви все рівно муситемете проводити реальну валідацію, виконувати реальну бізнес-логіку, перейматись аутентифікацією і т.п. Тобто жодного сенсу серйозно перевантажувати фронт-енд. Там має сенс робити лише різні UI-світульки, та первинну валідацію данних. А це в свою чергу можна все спокійно робити і простим JS(лише тільки охайно все писати і оформлювати). То навіщо всі ці ускладнення з Node.js, транспілерами і т.і. Заради чого?
3) ...тим більше, що самі по собі Angular чи ReactJS не пропонують готові компоненти, як такі. А от для того ж jQuery є багатий вибір готових компонентів. Або є той же порт відомої JSF ліби Primefaces, і для Angular, ReactJS і для jQuery. То який сенс тоді ускладнювати собі життя всіма цими ангулярами, якщо головне саме готові(або такі, що вимагають мінімум додаткової роботи) компоненти, а основна робота буде все рівно робитись на сервері?
4) Що ви думаєте про таку архітектуру, де все що може бути статичним робиться статичними сторінками з JS+jQuery+jQueryUI/PrimeUI/etc. Ну там шаблони всілякі є, але генеруються в кінцевому підсумку в статичні сторінки перед релізом.
Все що потребує бізнес-логіки на сервері робиться як прості веб сервіси(microservices, JSON), +bonus ті самі сервіси можна використовувати в Android, iOS клієнті.
Яке в такій архітектурі може буте місце Angular чи ReactJS? Що вони можуть спростити чи покращити?
Лучшие комментарии пропустить