QCM : Optimiser la Qualité du Code — 24 questions

Questions et réponses du QCM

1. Dans une suite de Fibonacci, comment se construit chaque terme suivant ?

Il est la somme des deux termes précédents
Il est égal au terme précédent multiplié par deux
Il est la différence des deux termes précédents
Il est le produit des deux termes précédents

Il est la somme des deux termes précédents

Explication

Dans la suite de Fibonacci, chaque terme est obtenu en additionnant les deux termes précédents. C’est cette règle qui produit la progression caractéristique de la suite.

2. Que représente le lien entre la suite de Fibonacci et le nombre d’or ?

La suite alterne entre deux valeurs fixes
Les rapports successifs des termes tendent vers une constante
Les termes de la suite deviennent tous identiques
Le nombre d’or correspond à la somme des trois derniers termes

Les rapports successifs des termes tendent vers une constante

Explication

Le lien repose sur le fait que les rapports de termes successifs de Fibonacci convergent vers le nombre d’or. Les autres propositions ne décrivent pas cette stabilisation des proportions.

3. Que désigne principalement la lisibilité du code ?

La quantité de commentaires présents dans le fichier
Le nombre de classes utilisées dans l’application
La facilité à comprendre rapidement le programme grâce à sa structure et ses noms
La vitesse d’exécution mesurée sur de grands volumes de données

La facilité à comprendre rapidement le programme grâce à sa structure et ses noms

Explication

La lisibilité du code concerne la compréhension rapide du programme, notamment grâce à une structure claire et à des noms explicites. Elle ne dépend pas du nombre de commentaires.

4. Pourquoi le renommage de variables améliore-t-il l’intention du code ?

Parce qu’il rend visible le rôle réel des données et des calculs
Parce qu’il supprime la nécessité de toute logique conditionnelle
Parce qu’il remplace les tests par des explications
Parce qu’il augmente automatiquement la performance

Parce qu’il rend visible le rôle réel des données et des calculs

Explication

Renommer les variables permet de révéler leur rôle réel et donc l’intention du code. Cela aide à comprendre ce que fait chaque bloc sans avoir à deviner.

5. Quel est l’intérêt d’un nom de méthode comme printFirstNPositive ?

Décrire explicitement l’action réalisée par la méthode
Indiquer uniquement le type de retour de la méthode
Masquer la logique pour protéger l’implémentation
Réduire la longueur du code source au minimum

Décrire explicitement l’action réalisée par la méthode

Explication

Un nom comme printFirstNPositive rend l’intention lisible immédiatement, ici l’affichage des premières valeurs positives. Un nom vague oblige au contraire à deviner le comportement.

6. Dans un code de filtrage, pourquoi remplacer getFlg par getFlaggedCell est-il préférable ?

Parce que le nouveau nom décrit le résultat renvoyé
Parce que le nouveau nom indique seulement le type technique
Parce que le nouveau nom cache mieux la logique interne
Parce que le nouveau nom supprime le besoin de retour

Parce que le nouveau nom décrit le résultat renvoyé

Explication

getFlaggedCell décrit clairement ce que la méthode renvoie, à savoir des cellules marquées. getFlg est trop obscur et masque l’intention du traitement.

7. Pourquoi la notation hongroise est-elle déconseillée pour un code expressif ?

Parce qu’elle pousse à nommer par le type plutôt que par le rôle métier
Parce qu’elle impose des noms toujours très longs
Parce qu’elle interdit l’usage de variables locales
Parce qu’elle empêche toute compilation

Parce qu’elle pousse à nommer par le type plutôt que par le rôle métier

Explication

La notation hongroise met l’accent sur le type ou la nature technique plutôt que sur le rôle métier. Cela masque l’intention du code au lieu de la rendre plus claire.

8. Quel outil peut aider à choisir un nom métier plus précis quand le vocabulaire manque ?

Un compilateur plus rapide
Un moteur de synonymes
Un débogueur interactif
Un ordonnanceur de tâches

Un moteur de synonymes

Explication

Un moteur de synonymes peut proposer des termes proches pour affiner un nom métier. L’objectif est de trouver un vocabulaire plus expressif pour le domaine.

9. Quel est le rôle des standards de codage comme Google Java Style ou les conventions Oracle ?

Remplacer les besoins de revue de code
Imposer un seul nom possible pour chaque variable
Fournir des règles cohérentes de style, de structure et de formatage
Définir les algorithmes à utiliser dans chaque projet

Fournir des règles cohérentes de style, de structure et de formatage

Explication

Ces standards fixent des conventions de style et de formatage pour rendre le code cohérent et lisible. Ils ne définissent pas les algorithmes applicatifs.

10. Quelle est l’idée principale derrière des commentaires pertinents ?

Augmenter le volume de texte pour paraître plus complet
Répéter mot à mot chaque instruction du programme
Apporter une information utile introuvable directement dans le code
Remplacer des noms de variables peu clairs

Apporter une information utile introuvable directement dans le code

Explication

Les commentaires pertinents doivent compléter le code en expliquant l’intention ou le contexte. S’ils ne font que répéter le code, ils deviennent du bruit.

11. En quoi la documentation par tests est-elle utile ?

Elle sert uniquement à mesurer les performances
Elle remplace toute forme de nommage explicite
Elle décrit le comportement attendu à travers des cas concrets exécutables
Elle évite d’écrire des assertions

Elle décrit le comportement attendu à travers des cas concrets exécutables

Explication

Les tests documentent le comportement attendu en montrant des exemples concrets et vérifiables. Ils constituent une documentation exécutable du système.

12. Que doivent éviter les commentaires lorsqu’un code est déjà clair ?

De reformuler ce que le code dit déjà
De donner du contexte métier
D’expliquer le pourquoi d’une décision
De préciser une contrainte non visible

De reformuler ce que le code dit déjà

Explication

Quand le code est déjà clair, un commentaire ne doit pas simplement le paraphraser. Il doit apporter une information supplémentaire, sinon il alourdit inutilement la lecture.

13. Qu’est-ce qu’un code smell ?

Un indice de mauvaise conception ou de fragilité du code
Une convention de nommage officielle
Un test unitaire trop court
Une erreur de compilation systématique

Un indice de mauvaise conception ou de fragilité du code

Explication

Un code smell signale souvent un problème de conception, de lisibilité ou de maintenabilité. Il n’est pas forcément un bug, mais il annonce un risque de qualité.

14. Que recommande la règle des boy-scouts lorsqu’on modifie du code ?

Attendre une réécriture complète avant d’agir
Ajouter davantage de dépendances pour clarifier
Le laisser dans un meilleur état qu’on ne l’a trouvé
Le laisser strictement identique en structure

Le laisser dans un meilleur état qu’on ne l’a trouvé

Explication

La règle des boy-scouts incite à améliorer progressivement le code à chaque passage. L’idée est de nettoyer un peu à chaque modification.

15. Pourquoi faut-il des tests avant de refactorer ?

Pour vérifier que le comportement observable ne change pas
Pour supprimer la nécessité d’une revue
Pour rendre le code plus lent mais plus sûr
Pour éviter toute modification structurelle

Pour vérifier que le comportement observable ne change pas

Explication

Les tests servent de filet de sécurité pendant le refactoring, afin de confirmer que le comportement reste identique. Sans eux, on ne peut pas valider facilement l’absence de régression.

16. À quoi sert un catalogue de refactorings ?

À proposer des techniques de remaniement adaptées à différents problèmes
À stocker les données de production
À recenser les erreurs de syntaxe les plus courantes
À décrire uniquement les choix de nommage

À proposer des techniques de remaniement adaptées à différents problèmes

Explication

Un catalogue de refactorings est une boîte à outils de remaniements du code, chacun associé à un objectif précis. Il aide à choisir la bonne technique face à un code smell.

17. Que cherche à obtenir une conception simple ?

Un code qui dépend fortement des détails internes
Un programme rempli de fonctionnalités avancées
Un système compréhensible et maintenable, avec peu de mécanismes inutiles
Une architecture qui multiplie les couches

Un système compréhensible et maintenable, avec peu de mécanismes inutiles

Explication

La conception simple vise la clarté, la maintenabilité et l’absence de complexité inutile. Elle privilégie les choix qui rendent le système plus lisible.

18. Quel est l’effet principal de la réduction de duplication ?

Limiter les incohérences et faciliter l’évolution du code
Rendre les corrections plus coûteuses
Remplacer le besoin de tests automatisés
Augmenter le nombre de variantes d’un même comportement

Limiter les incohérences et faciliter l’évolution du code

Explication

Réduire la duplication diminue les endroits à mettre à jour et réduit les risques d’écarts entre morceaux de logique similaires. Cela améliore la maintenabilité.

19. Que signifie la dette technique dans le contexte du développement logiciel ?

Le coût accumulé de choix de conception qui compliquent l’avenir
Un délai obligatoire pour livrer une fonctionnalité
Une taxe liée au stockage des données
Une métrique qui compte le nombre de tests

Le coût accumulé de choix de conception qui compliquent l’avenir

Explication

La dette technique est une métaphore du coût futur généré par des choix imparfaits de conception ou de code. Plus elle s’accumule, plus le maintien devient difficile.

20. Que mesure la complexité cyclomatique ?

Le nombre d’embranchements logiques dans le code
Le nombre total de fichiers du projet
La taille mémoire occupée par une classe
Le nombre de commentaires présents

Le nombre d’embranchements logiques dans le code

Explication

La complexité cyclomatique compte les points de décision du code, comme les conditions et les branches. Elle aide à repérer les zones potentiellement difficiles à maintenir.

21. Quel est le rôle principal de SonarQube dans une démarche d’inspection continue ?

Écrire les tests à la place du développeur
Analyser le code en continu et remonter des issues de qualité
Remplacer complètement les standards de codage
Compiler automatiquement les binaires

Analyser le code en continu et remonter des issues de qualité

Explication

SonarQube réalise une analyse continue du code pour détecter des problèmes et les présenter sous forme d’issues. Il sert de tableau de bord qualité pour piloter les corrections.

22. À quoi sert le tableau de bord SonarQube ?

À stocker les dépendances externes
À visualiser les indicateurs qualité et les issues à traiter
À générer des identifiants de méthode
À exécuter les applications en production

À visualiser les indicateurs qualité et les issues à traiter

Explication

Le dashboard regroupe les indicateurs et les problèmes détectés pour guider le traitement de la qualité. Il offre une vue synthétique sur l’état du code.

23. Quel est l’objectif du principe DRY ?

Multiplier les méthodes pour détailler chaque étape
Rendre chaque classe indépendante de toute autre classe
Éviter la duplication de logique pour réduire les incohérences et les coûts de maintenance
Ajouter des commentaires à chaque ligne

Éviter la duplication de logique pour réduire les incohérences et les coûts de maintenance

Explication

DRY vise à supprimer la répétition de logique afin de limiter les erreurs de mise à jour et les incohérences. C’est un principe central pour maintenir un code propre.

24. Que recommande la loi de Demeter concernant les appels d’objets ?

D’exposer tous les détails de l’implémentation
De traverser librement toute chaîne d’objets
De parler uniquement aux amis immédiats d’un objet
De consulter directement les sous-objets internes

De parler uniquement aux amis immédiats d’un objet

Explication

La loi de Demeter limite les interactions aux objets proches, afin d’éviter les chaînes d’appels fragiles. Cela réduit la dépendance aux détails internes.

Révisez avec les flashcards

Mémorisez les réponses avec 24 flashcards sur Optimiser la Qualité du Code.

Suite de Fibonacci — définition ?

Séquence d’entiers où chaque terme est la somme des deux précédents.

Nombre d’or — lien avec Fibonacci ?

Limite des rapports successifs de Fibonacci.

Lisibilité du code — rôle ?

Faciliter la compréhension rapide par une structure claire.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Optimiser la Qualité du Code.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM