Qu’est ce que les méthodes agiles
Agile est avant tout une méthodologie.
C’est une approche de développement logiciel qui met l’accent sur la collaboration, l’adaptation au changement et la livraison continue.
Dans cette méthodologie on va retrouver, dans l’ordre chronologique :
Ca peut donc donner quelque chose du genre :
Exemples de rituels scrum
Scrum est un cadre (on parle même de framework) de gestion de projet qui applique ces valeurs agiles de manière concrète.
Daily meeting
poker planning
Quels sont les principaux critères de qualité du logiciel
Comment font les personnes malvoyantes pour naviguer sur internet
lecteur d’écrans
Touche tab
Commandes vocales
Qu’est ce que le WCAG
Les Règles pour l’accessibilité des contenus Web (WCAG) 2 sont développées dans le cadre du processus de W3C en collaboration avec des personnes et des organismes du monde entier, dans le but de fournir un standard unique commun pour l’accessibilité des contenus Web répondant, au niveau international, aux besoins des personnes, des organismes et des gouvernements.
Les documents des WCAG expliquent comment rendre les contenus Web plus accessibles aux personnes en situation de handicap. Le terme « contenu » Web fait en général référence à l’information d’une page Web ou d’une application Web, comprenant :
les informations générales telles que le texte, les images et les sons ;
le code ou le balisage qui définit la structure, la présentation, etc.
Citez quelques bonnes pratiques en termes d’accessibilité.
Sémantique
Alt
aria label
Ajout de rôle
Responsive
Navigable au clavier
Contraste
A quel point le numérique contribue t-il aux émissions de gaz à effet de serre et de conso d’énergie ?
Le numérique consomme 10% de l’électricité annuelle
= 2259 km en voiture / pers
Sur quels postes peut-on agir (et dans quelle priorité) pour réduire les émissions et la consommation d’énergie du numérique ? (ex : Support des vieux devices)
78% des émissions liées aux appareils : nous devons maximiser l’utilisation de nos apps même sur de vieux appareils (ne pas contribuer à l’obsolescence)
21% liées aux usages : nous pouvons agir fortement en choisissant un hébergeur engagé et en évitant les usages les plus consommateurs de bande passante, stockage et CPU
savoir définir une requête HTTP, les verbes HTTP, ce qu’est une URL, les statuts de réponses, etc.
Une requête HTTP est un message envoyé par un client à un serveur pour demander une action spécifique. Elle est utilisée pour initier une communication entre un navigateur (client) et un serveur web. Une requête HTTP est généralement composée de l’URL cible, de la méthode HTTP (verbe), des en-têtes (headers) et éventuellement d’un corps de requête (request body) pour les méthodes qui le permettent.GET / PUT(maj / update) / DELETE / PATCH / POST
◦ HEAD : Récupère uniquement les en-têtes d’une ressource (sans son contenu).
◦ OPTIONS : Récupère les méthodes HTTP supportées par le serveur pour une ressource spécifiée.
C’est quoi une url ?
(Uniform Resource Locator) : Une URL est une adresse utilisée pour localiser une ressource sur Internet. Elle identifie de manière unique une ressource et spécifie le protocole utilisé pour accéder à cette ressource (par exemple, HTTP, HTTPS).
De quoi est composé une URL ?
◦ Protocole : indique le protocole utilisé, tel que “http://” ou “https://”.
◦ Nom d’hôte : l’adresse du serveur sur lequel se trouve la ressource.
◦ Port (facultatif) : le numéro de port utilisé pour la communication.
◦ Chemin : l’emplacement spécifique de la ressource sur le serveur.
◦ Paramètres (facultatifs) : des données supplémentaires pouvant être utilisées par le serveur.
Status réponses HTTP
◦ 1xx (Informationnel) : Indique que la requête a été reçue et que le serveur continue le processus.
◦ 2xx (Succès) : Indique que la requête a été traitée avec succès.
◦ 3xx (Redirection) : Indique que des mesures supplémentaires doivent être prises pour compléter la requête.
◦ 4xx (Erreur client) : Indique une erreur causée par la requête du client.
◦ 5xx (Erreur serveur) : Indique une erreur due au serveur lors du traitement de la requête.
C’est quoi les micro-services ? Quelle est la différence avec une application monolithique ?
Les micro-services sont une façon d’organiser une application en plusieurs petits services indépendants, chacun responsable d’une fonction précise. Chaque micro-service est autonome, peut être développé, déployé et mis à jour séparément, et communique avec les autres via des API (souvent HTTP/REST, gRPC, messages, etc.).
✅ Micro-services — caractéristiques principales
Chaque service = une fonctionnalité
(ex. gestion utilisateurs, paiements, notifications…)
Déploiement indépendant
Technologies différentes possibles
(ex. un service en Java, un autre en Node.js)
Communications via réseau (API, message broker)
Échelle fine : on peut augmenter les ressources pour un seul service
Tolérance aux pannes : une panne d’un service ne bloque pas tout (si bien conçu)
C’est quoi un design pattern ? Pouvez-vous en citer plusieurs ?
Dans le monde du développement logiciel, les design patterns (ou modèles de conception) représentent des solutions éprouvées et réutilisables à des problèmes courants rencontrés lors de la conception d’un logiciel. L’application de ces patterns permet de rendre le code plus modulaire, maintenable, et extensible, en favorisant des structures logicielles claires et cohérentes.
Il existe trois grands types de design patterns :
Les Creational Design Patterns qui représentent tous les design patterns dédiés à la création d’objets. On y trouvera le Constructor Pattern, le Factory Pattern, etc. ;
Les Structural Design Patterns qui permettent de gérer et d’assembler des objets dans des structures plus grandes. Vous y trouverez, par exemple, l’Adapter Pattern et le Decorator Pattern ;
Et enfin les Behavioral Design Patterns qui correspondent à la communication entre les objets. On y trouve, par exemple, l’Observable Pattern et les State Patterns.
SQL : Savoir agréger des données pour faire des stats : ex (CA par région)
SELECT
region,
SUM(montant) AS chiffre_affaires
FROM ventes
GROUP BY region;
SQl : définir ce que sont les indexes en SQL
En SQL, un index est une structure de données spéciale (semblable à un index de livre) qui accélère la recherche et l’accès aux données dans une table.
Sans index, la base doit parcourir toutes les lignes (full table scan) pour trouver l’information.
Avec un index, elle peut localiser directement les lignes recherchées.
Les index améliorent la lecture, mais :
Ralentissent l’insertion, la mise à jour et la suppression
Consomment de l’espace disque
Si mal utilisés, peuvent même degrader les performances
Donc : on indexe les colonnes souvent recherchées ou filtrées, pas toutes.
Savoir définir l’approche ACID en SQL
L’approche ACID en SQL désigne les quatre propriétés fondamentales qu’une transaction doit respecter pour garantir l’intégrité des données.
Une transaction = un ensemble d’opérations (ex : virement bancaire) qui doivent être exécutées comme un tout.
Atomicity (Atomicité)
La transaction est tout ou rien : si une partie échoue, tout est annulé
Consistency (Cohérence)
Les données passent d’un état valide à un autre état valide (pas de corruption)
Isolation (Isolation)
Les transactions concurrentes ne se perturbent pas : elles semblent s’exécuter chacune seule
Durability (Durabilité)
Une fois validée, la transaction est définitive même en cas de panne
connaître une base de données Clé-Valeur (redis, valkey, …) et savoir décrire les principaux cas d’usage ainsi que le fonctionnement général.
Une base de données clé-valeur est un type de base NoSQL qui stocke les données sous forme de paire : clé → valeur.
On récupère une donnée en fournissant sa clé (comme un dictionnaire ou un tableau associatif).
Exemples connus : Redis, Valkey (fork open-source de Redis), Memcached, RocksDB, LevelDB.
Qu’est-ce que le soft-deleting
Le soft-deleting (ou soft delete) est une technique qui consiste à marquer une donnée comme supprimée sans réellement l’effacer de la base de données.
Au lieu de supprimer la ligne (comme avec DELETE), on ajoute généralement un champ (ex. deleted_at ou is_deleted) :
Qu’est ce qu’une promesse, citez les différents types ? Si on ne les utilise pas , qu’est ce qu’on fait ?
Une promesse (Promise) est un mécanisme en JavaScript (et dans d’autres langages) qui permet de gérer du code asynchrone.
Elle représente une opération en cours qui aboutira plus tard avec un résultat ou une erreur.
Une promesse est un objet qui s’engage à fournir une valeur plus tard : succès ou erreur.
3 étapes
pending En attente (l’opération n’est pas finie)
fulfilled L’opération est réussie
rejected L’opération a échoué
Avant les promesses (et parfois encore aujourd’hui), l’asynchrone était géré avec des callbacks.
Pourquoi utiliser une promesse ?
On utilise une promesse principalement pour gérer le code asynchrone de manière claire, fiable et maintenable.
Avant les promesses, l’asynchrone se gérait avec des callbacks imbriqués, ce qui rend le code illisible et difficile à maintenir :
Avec les callbacks, il fallait vérifier les erreurs à chaque étape.
Avec les promesses, on peut centraliser la gestion d’erreur avec .catch() ou try/catch en async/await :
Tu peux me nommer les structures de bases du langage javascript ?
Object, array, map, set
conditionnel (if, switch, boucle)
Fonctions (sum, filter, sort)
Asyncrhone
Quelles sont les spécificités du mot clé this ?
Le mot-clé this en JavaScript est spécial et contextuel : il fait référence à l’objet sur lequel la fonction est exécutée, mais sa valeur dépend du contexte d’exécution.
Voici les points clés à connaître :
Expliquer le fonctionnement de Webpack
Webpack est un module bundler pour JavaScript (et plus largement pour les projets front-end). Son rôle principal est de regrouper tous les fichiers d’un projet (JS, CSS, images, etc.) en un ou plusieurs fichiers optimisés pour le navigateur.