Я наближаюся до завершення складання прототипів / доказів етапу концепції для побічного проекту, над яким я працюю, і намагаюся визначитися з деякими масштабними рішеннями дизайну додатків. Додаток - це система управління проектами, пристосована більше до спритного процесу розвитку. Одне з рішень, яке мені потрібно прийняти, - це чи не ходити з традиційною багатосторінковою програмою чи додатком на одній сторінці
Наразі мій прототип - це традиційна налаштування на багато сторінок, проте я шукав backbone.js, щоб очистити та застосувати певну структуру до мого коду Javascript (jQuery). Схоже, що в той час як backbone.js можна використовувати у багатосторінкових програмах, це більше світиться для програм на одній сторінці. Я намагаюся скласти список переваг та недоліків використання підходу до дизайну додатків на одній сторінці. Поки що я маю:
Переваги
Усі дані повинні бути доступні через якийсь API - це велика перевага для мого використання, оскільки я хочу мати API для своєї програми. Зараз приблизно 60-70% моїх дзвінків щодо отримання / оновлення даних здійснюються через REST API. Виконання програми на одній сторінці дозволить мені краще перевірити свій REST API, оскільки сама програма його буде використовувати. Це також означає, що в міру зростання програми додаватиметься сам API, оскільки саме для цього використовується додаток; не потрібно підтримувати API як доповнення до програми.
Більш чуйний додаток - оскільки всі дані, завантажені після початкової сторінки, зводяться до мінімуму та передаються у компактному форматі (наприклад, JSON), запити даних, як правило, швидше, а сервер буде трохи менше обробляти.
Недоліки
- Дублювання коду - наприклад, код моделі. Мені доведеться створювати моделі як на стороні сервера (PHP в даному випадку), так і на стороні клієнта в Javascript.
- Бізнес-логіка в JavaScript - я не можу навести конкретних прикладів того, чому це було б погано, але мені просто не подобається мати бізнес-логіку в Javascript, яку кожен може прочитати.
- Витік пам’яті Javascript - оскільки сторінка ніколи не перезавантажується, може відбуватися витік пам'яті Javascript, і я навіть не знаю, з чого почати їх налагоджувати.
Є й інші речі, які є різновидами мечів з двома кінцями. Наприклад, для програм на одній сторінці даних, що обробляються для кожного запиту, може бути набагато менше, оскільки програма запитає мінімальні дані, необхідні для конкретного запиту, однак це також означає, що може бути набагато більше невеликих запитів на сервер. Я не впевнений, чи це добре, чи погано.
Які є переваги та недоліки веб-додатків на одних сторінках, про які я повинен пам’ятати, вирішуючи, яким шляхом я повинен піти для свого проекту?