R03. Front end - PastoriLucas/Dev.Web GitHub Wiki

Angular

Premières impressions

Durant le début de ce quadrimestre, nous avons participé des ateliers organisés lors des cours de Développement Informatique dans le but de découvrir les différents langages que nous serions susceptibles de choisir dans la cadre de ce projet. Entre PHP, Python, différents frameworks de Javascript comme React, Vue ou encore Angular mais encore quelques autres, nous ne savions vraiment pas choisir. Nous sommes donc partis du principe que ça fait un an et demi que nous avons des cours de Javascript, et que nous aurions donc une certaine aisance pour découvrir des frameworks de Javascript. Ensuite, nous avions toujours un dilemme entre Angular, React et Vue. Pour cela, nous nous sommes pas mal renseignés sur internet, et il a fallu peser le pour et le contre de chacun des frameworks. Nous avons donc mis côte à côte tous les avantages et inconvénients de React, Vue et Angular, et nous les avons comparés pour voir lequel était le plus propice à notre projet. Ci-dessous, nous avons répertorié les avantages et inconvénients spécifiques à Angular qui nous ont fait pencher sur ce framework-ci, et pas un autre.

Avantages

  • Angular est souvent de pair avec Node.js dans la conception de projets sous forme de MEAN stack (Mongo DB, Express, Angular et Node.js). La documentation permettant de synchroniser Node.js avec Angular est donc très présente et développée.
  • Le système de Components permet de s'y retrouver très facilement dans le code, et permet également de créer un code de qualité supérieure beaucoup plus facilement.
  • Angular permettant de construire son site sous forme de SPA (Single Page Application), cela permet une certaine rapidité de la part du site. En effet, grâce à cette SPA, il n'y a pas besoin de recharger l'ensemble de la page lorsqu'on clique sur un bouton, mais uniquement recharger la partie que le bouton va affecter. La SPA utilise également une bien moins grande bande passante, ce qui améliore grandement la rapidité.
  • Angular étant supporté par Google, ça nous assure une certaine stabilité de l'application, un développement assuré par des professionnels (du moins qui n'est pas Open Source) ainsi que d'une rapide correction de bugs s'il vient à en avoir.

Inconvénients

  • Bien que le système de Components soit efficace, il possède également des points négatifs. En effet, le fait que chaque Component nécessite la création de 4 fichier (.html, .css, .ts et .spec.ts) ainsi que l'ajout dans la table de déclaration du Component principal, on peut assez vite s'embrouiller et s'y perdre au sein de tous ces différents fichiers.

Décision finale

Après avoir pesé le pour et le contre pour chacun des front-end, nous sommes vite partis sur le choix d'Angular. Au vu de ses nombreuses qualités et du peu de défauts (du moins ceux qui nous concernent, parce qu’apparemment il y a énormément de problèmes lors de tranfert d'AngularJS vers Angular), ça a été très clair pour nous que nous allions partir là dessus. En lisant la description de ce framework, nous avons été confiants sur la réalisation de ce projet avec ce langage, et nous savions qu'il allait nous apporter certaines facilités dans la réalisation du site.