Quiz: Optimiser la Qualité du Code — 24 domande

Domande e risposte dettagliate

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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é

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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à

Spiegazione

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

Spiegazione

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é

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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é

Spiegazione

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

Spiegazione

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

Spiegazione

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

Spiegazione

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.

Ripassa con le flashcard

Memorizza le risposte con 24 flashcard su 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.

Vedi le flashcard →

Studia la scheda di revisione

Leggi la scheda di revisione completa su Optimiser la Qualité du Code.

Vedi la scheda di revisione →

Similar courses

Crea i tuoi quiz

Importa il tuo corso e l'AI genera quiz con correzioni in 30 secondi.

Generatore di quiz