% INF5190 — Programmation Web avancée % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Beaudry, Éric PK-4635 Enseignement ------------- Berger, Jacques PK-4115 Groupes: 010 Description du cours ==================== Objectifs --------- Ce cours introduit aux méthodes avancées et aux bonnes pratiques de conception et de développement d'applications Web modernes. Sommaire du contenu ------------------- Infrastructure et cadre de développement Web ; intégration d'une base de données ; authentification ; conception de services web ; formats de sérialisation ; gestion d'erreurs ; interopérabilité ; déploiement de services ; tests de charge ; sécurité et patrons d'attaques spécifiques aux applications web. Modalité d'enseignement ----------------------- Ce cours comporte une séance obligatoire de laboratoire (2 heures par semaine). Préalables académiques ---------------------- - INF3080 - Bases de données - INF3190 - Introduction à la programmation Web Contenu détaillé ================ 1. Rappel des principaux langages et outils du Web : HTML, CSS et JavaScript. Modèle client-serveur. Protocoles réseaux HTTP et HTTPs. Architecture à trois couches. 2. Couche de présentation: Site statique, site dynamique et application monopage. Cadriciels frontend. Construction par composants et services. 3. Couche de traitement: Service Web et API. Sérialisation de données. Communication entre composants. 4. Couche de traitement (suite): Conception d'API et microservices. 5. Couche de données: Différents types de bases de données et leurs caractéristiques. Outils de mapping objet-relationnel. Gestion de ressources binaires. 6. Stratégies d'authentification et internationalisation. 7. Gestion d'erreurs et résilience: Traces et alertes. Patrons de conception de résilience. 8. Examen intra. 9. Sécurité et patrons d'attaque spécifique aux applications web. 10. Tests et performances: Types de tests. Tests de charges. 11. Infrastructure et déploiement: Environnements de développement, tests, staging et production. Déploiement en infonuagique. Automatisation. 12. Évolution et maintenance: Rétrocompatibilité. Migration de données. Métriques. Stratégie de déploiement sans temps mort. 13. Mise à l'échelle: Balanceur de charge. Cache. Réseau de diffusion de contenu. Stratégie de partitionnement. 14. Application web progressive: Manifeste. Service Workers. 15. Examen final. Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ------------- ------------- Examen intra 20 fév 2023 25% Examen final 24 avr 2023 25% TP 06 mar 2023 15% Projet de session 17 avr 2023 35% Un travail remis en retard reçoit la note zéro à moins d'avoir fait l'objet d'une entente préalable avec l'enseignant. Le détail des conditions de réalisation du travail de session est précisé avec la description de celui-ci. La qualité du français fait partie intégrante des critères d'évaluation des travaux et des examens jusqu'à un maximum de 25%. La note de passage du cours est de 60% pour l'ensemble de l'évaluation et de 50% pour les deux examens combinés.