J'arrive à la fin d'une phase de prototypage / de validation de concept pour un projet parallèle sur lequel je travaille et j'essaie de prendre des décisions concernant la conception d'applications à plus grande échelle. L'application est un système de gestion de projet plus adapté au processus de développement agile. L'une des décisions que je dois prendre consiste à choisir entre une application traditionnelle à plusieurs pages ou une application à une seule page.
Actuellement, mon prototype est une configuration traditionnelle de plusieurs pages. Cependant, je me suis penché sur backbone.js pour nettoyer et appliquer une structure à mon code Javascript (jQuery). Il semble que si backbone.js peut être utilisé dans des applications de plusieurs pages, il brille davantage avec les applications d'une seule page. J'essaie de proposer une liste d'avantages et d'inconvénients à l'utilisation d'une approche de conception d'application d'une seule page. Jusqu'à présent j'ai:
Avantages
Toutes les données doivent être disponibles via une sorte d’API - c’est un gros avantage pour mon cas d’utilisation, car je souhaite quand même avoir une API pour mon application. Actuellement, environ 60 à 70% de mes appels pour obtenir / mettre à jour des données se font via une API REST. Faire une application d'une seule page me permettra de mieux tester mon API REST puisque l'application l'utilisera elle-même. Cela signifie également que, à mesure que l'application grandit, l'API grandira elle-même, car c'est ce que l'application utilise. pas besoin de maintenir l'API en tant que complément à l'application.
Application plus réactive - puisque toutes les données chargées après la page initiale sont réduites au minimum et transmises dans un format compact (comme JSON), les demandes de données devraient généralement être plus rapides et le serveur effectuera un traitement légèrement moins.
Désavantages
- Duplication de code - par exemple, code de modèle. Je vais devoir créer des modèles à la fois côté serveur (PHP dans ce cas) et côté client en Javascript.
- La logique métier en Javascript - Je ne peux pas donner d'exemples concrets sur la raison pour laquelle cela serait mauvais, mais cela ne me semble pas correct de disposer d'une logique métier en Javascript que tout le monde peut lire.
- Fuites de mémoire Javascript - la page ne se rechargeant jamais, des fuites de mémoire Javascript peuvent se produire et je ne sais même pas par où commencer pour les déboguer.
Il y a aussi d'autres choses qui sont une sorte d'épée à double tranchant. Par exemple, avec des applications à une seule page, les données traitées pour chaque demande peuvent être beaucoup moins importantes, car l'application demandera le minimum de données dont elle a besoin pour la demande particulière. Toutefois, cela signifie également qu'il pourrait y avoir beaucoup plus de petites demandes à le serveur. Je ne suis pas sûr que ce soit une bonne ou une mauvaise chose.
Quels sont certains des avantages et des inconvénients des applications Web à page unique que je devrais garder à l’esprit lors du choix de la voie à suivre pour mon projet?