| Langage | Rôle | Description |
|---|---|---|
| HTML (HyperText Markup Language) | Structure | Définit la sémantique et la structure du contenu (titres, paragraphes, images, liens). C’est l’ossature de la page. |
| CSS (Cascading Style Sheets) | Présentation | Gère l’apparence, le style, la mise en page et l’ergonomie (couleurs, polices, positionnement, réactivité). |
| JavaScript (JS) | Comportement | Ajoute de l’interactivité, de la logique côté client, et permet de manipuler dynamiquement le contenu de la page (DOM). |
Frameworks et Librairies JavaScript (Le Comportement)
Dans les applications modernes (SPA ou SSR Isomorphe), le JavaScript est le moteur qui gère le rendu et la logique client.| Technologie | Type | Fonctionnement et Avantages | Inconvénients |
|---|---|---|---|
| React | Librairie UI | Basé sur les composants (réutilisables), utilise un Virtual DOM pour optimiser le rendu et minimiser les manipulations directes du DOM réel, facilitant l’optimisation. | Requiert souvent des outils supplémentaires (gestion d’état, routage) pour devenir une application complète. |
| Vue.js | Framework Progressif | Très simple d’approche, se concentre sur l’approche déclarative. Peut être intégré progressivement à un projet existant. | Moins utilisé dans les très grandes entreprises que React, bien que sa popularité croisse rapidement. |
| Angular | Framework Complet | Solution batteries-included (inclut routage, gestion d’état, CLI) pour les applications d’entreprise structurées. Utilise TypeScript par défaut. | Grande courbe d’apprentissage, lourd pour les petites applications. |
Le Rendu Côté Serveur Traditionnel (Les Moteurs de Templates)
Avant l’ère des SPAs, ou dans le cas d’applications SSR complètes, le backend génère le HTML final en utilisant des Moteurs de Templates.| Moteur de Template | Langage Backend | Fonctionnement et Avantages | Usage Typique |
|---|---|---|---|
| Twig | PHP (Symfony) | Syntaxe simple et lisible. Offre la sécurité par défaut (échappement automatique des variables) pour prévenir les attaques XSS. | Applications monolithiques ou SSR traditionnelles basées sur PHP. |
| Jinja | Python (Flask, Django) | Très similaire à Twig, populaire dans l’écosystème Python. | Sites web et applications web traditionnelles en Python. |
| EJS / Handlebars | Node.js | Utilisé pour générer du HTML dynamique côté serveur en JavaScript. | Petits serveurs Node.js ou architecture hybride simple. |
Stratégies de Style (CSS)
La manière dont le CSS est organisé est cruciale pour la maintenabilité de la feuille de style.Style Pré-processé (SASS/LESS) ou Pure CSS
- Pure CSS : Écrire directement en CSS standard. Simple, pas de dépendance externe.
- SASS / LESS (Pré-processeurs) : Ajoutent des fonctionnalités manquantes au CSS, comme :
- Variables : Pour réutiliser des couleurs ou des tailles.
- Mixins : Pour regrouper des blocs de styles réutilisables.
- Imbrication : Pour structurer le CSS selon la hiérarchie du HTML.
- Avantage : Rend le code CSS plus DRY (Don’t Repeat Yourself) et maintenable sur les grands projets.
- Méthodes de Structuration : Des méthodologies comme BEM (Block-Element-Modifier) aident à nommer les classes pour améliorer la clarté et éviter les conflits de style (CSS specificity).
Utility-First (Exemple : Tailwind CSS)
- Définition : Au lieu de créer des classes sémantiques personnalisées (
.bouton-principal), on applique directement des classes utilitaires atomiques pour chaque propriété CSS (.bg-blue-500,.p-4,.rounded-lg). - Avantages : Vitesse de développement très élevée. Le style d’un composant est colocalisé (tout est dans le HTML). Petite taille de fichier final (le CSS est purgé des classes non utilisées).
- Inconvénients : Le HTML devient très dense en classes, ce qui peut rendre la lecture du balisage plus difficile.
