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.