Présentation du langage

Le langage Angular est un framework principalement front-end développé par Google, il a été conçu pour faciliter la création d'applications web afin de les rendre toujours plus modernes , dynamiques ou encore bien structurées. Angular repose sur le langage TypeScript, un sur ensemble du langage JavaScript apportant une meilleure maintenabilité et un typage fort, réduisant donc les erreurs durant le développement d'applications web. Grâce au fait que Angular possède une architecture en composants il encourage l’utilisation d’une organisation modulaire de son code, ce qui le rend adapté à des projets de très grande envergure. J’ai pu également mettre en œuvre une organisation du code structurant chaque projet en modules distincts et en définissant des services réutilisables ou encore en appliquant des pratiques d’injection de dépendances avancées. Ces éléments validés par la réalisation de tests unitaires et fonctionnels sur chaque composant.

L’un des atouts d’Angular est le fait qu’il possède une liaison bidirectionnelle des données, ce qui permet de synchroniser efficacement l’interface de l’utilisateur avec l’état de l’application et le backend. Il intègre également un système de route avancé, permettant une gestion beaucoup plus optimisée de l’application. Angular possède aussi une gestion optimisée des formulaires et un puissant mécanisme d’injection de dépendances dans les applications web, simplifiant ainsi le développement et la scalabilité des applications web. En complément de tout cela, son support natif en RxJS lui permet d’avoir une gestion fluide et réactive des flux de données asynchrones. Ces atouts m’ont permis d’optimiser chaque projet en réalisant des optimisations telles que le lazy loading de modules et la mise en place de pipelines asynchrones pour une réactivité accrue, appuyées par des analyses de performance systématiques.

La popularité d’Angular est également renforcée par une communauté qui est très active et il est également mis à jour très régulièrement, garantissant ainsi des performances optimales et une compatibilité avec toutes les dernières tendances du développement web. Angular c’est aussi un choix très privilégié par les entreprises qui souhaitent concevoir des applications web robustes et évolutives dans le temps allant de simples Dashboard à des plateformes beaucoup plus complexes nécessitant une architecture d’application très précise. Dans mes projets, j’ai utilisé ces forces pour concevoir des interfaces ergonomiques et évolutives, en appliquant une documentation technique précise et en utilisant des outils de suivi de performance pour garantir le respect des standards techniques établis par la communauté Angular.

Mon expérience vécue

Lors de mon apprentissage d’Angular j’ai commencé par réaliser des interfaces utilisateur simples, en me familiarisant avec les bases du framework Angular,en utilisant le databinding, les directives ou les composants. J’ai rapidement été amené à travailler sur des architectures beaucoup plus complexes, qui nécessitent une mise en place de services pour la gestion des API ou encore de modules pour optimiser la structure du code des applications web. J’ai ensuite intégré des concepts avancés tels que la gestion d’états via RxJS, l’optimisation par lazy loading et la configuration de routes dynamiques, éléments qui ont été validés par l’implémentation de scénarios de tests automatisés garantissant la robustesse de l’application.

L’un des projets que j’ai pu réaliser lors de ma formation au sein de l’ESIEA a été le développement d’une application SCRUM TOOLS pour l’entreprise Pack Solutions. L’objectif de l’application de SCRUM TOOLS était de permettre à l’entreprise d’organiser des sessions de mob programming à distance pendant la période du covid. J’ai donc conçu une interface permettant aux utilisateurs de créer et de gérer des sessions de code collaboratif à distance. J’ai pu également travailler sur l’optimisation des performances de l’application, avec par exemple l’utilisation du lazy loading pour pouvoir charger les différents modules uniquement quand ils sont nécessaires. J’ai également pu intégré RxJS dans l’application pour gérer les flux de données de l’application de manière réactive afin de gérer la gestion des événements et le temps des sessions de mob programming en temps réel. Lors de ce projet, j’ai appliqué une architecture modulaire en Angular et mis en place un système de communication inter-composants solide via des services RxJS, des tests unitaires rigoureux et une documentation technique détaillée, prouvant ainsi la fiabilité et l’évolutivité de l’application.

Mon niveau de compétence

Aujourd’hui, je maîtrise Angular de manière avancée. Je suis capable de réaliser des applications tout en respectant les bonnes pratiques mais aussi d’optimiser les performances d’une application grâce à du lazy loading ou encore d’intégrer différentes solutions comme RxJS pour avoir une gestion fluide des données asynchrones. Je continue aujourd’hui également à approfondir mes compétences en suivant les différentes évolutions du framework Angular grâce à des news ou des frameworks proches de celui-ci. Mon expertise est validée par la réussite de projets complexes, où j’ai mis en œuvre des stratégies de test automatisé, intégré des solutions de monitoring de performances et optimisé le chargement des modules, attestées par des indicateurs de performance stables et une documentation exhaustive sur l’implémentation technique de chaque fonctionnalité.