Architecture logicielle front End pour le web
Ref: 3IF4240
Description
- Cet électif a plusieurs objectifs :
- Architecture : Connaître le fonctionnement des différentes architectures webs, leurs avantages, inconvénients et leurs cas d’usage
- Performance : Savoir monitorer et résoudre les différents problèmes de performance web
- Sécurité : Connaître les principales failles et comment s’en prémunir
- Qualité : Connaître et mettre en pratique les outils d’analyse, statique et dynamique, qui garantissent la qualité du code
Période(s) du cours
SM11
Prérequis
aucun
Syllabus
Cours 1: Architectures webs
- Présentation chronologique des différentes architectures web (SSG, SSR, SPAs, hybrides), avec leurs avantages comparatifs
- Implémentation minimale de chaque architecture
Cours 2: Performance
- Décomposition d’une analyse de performance (TTFB, TTI)
- Revue de solutions pour tacler chacun des problèmes de performance
- Application de la méthode d’analyse à des sites réels, avec revue des solutions potentielles à implémenter pour améliorer la performance
Cours 3: Sécurité
- La sécurité n’est bien sûr pas un sujet uniquement frontend, mais notre point de départ sera le navigateur de client.
- Revue des différentes failles de sécurité: XSS, CORS,...
- Exemples pratiques
Cours 4: Analyse statique
- Impossible de coder professionnellement sans une analyse statique permanente de son code.
- Cela sera l’occasion de parler typage (TypeScript), linter, AST.
- Implémentation de règles complexes de linter
Cours 5: Analyse dynamique
- Brève revue de la pyramide des tests.
- Présentation de tests moins utilisés: snapshot testing, visual testing, property-based testing, mutation testing
Composition du cours
- Alternance de cours et de mises en situation
Ressources
- Équipe pédagogique : Alexandre Blondin
Résultats de l'apprentissage couverts par le cours
Chaque cours commence par de la théorie, mais la majorité du temps sera consacré à la pratique : analyse de sites webs publics, implémentation par les élèves tirée d’exemples réels.
En sortie du cours, les élèves auront une base théorique solide et seront capables de mettre en place sur leurs futurs projets les outils et méthodes abordés.