Vidéo: Apprendre à démarrer et s'arrêter en voiture #permis 2024
Le programmeur peut décomposer un seul programme en fichiers sources distincts, généralement appelés modules . Ces modules sont compilés séparément dans le code machine par le compilateur C ++, puis combinés au cours du processus de génération pour générer un seul programme.
Ces modules sont également connus par les geeks du compilateur en tant qu'unités de traduction C ++. Le processus de combinaison de modules compilés séparément en un seul programme est appelé liaison .
Couper les programmes en morceaux plus petits et plus maniables a plusieurs avantages. Tout d'abord, casser un programme en modules plus petits réduit le temps de compilation. De très gros programmes peuvent prendre beaucoup de temps.
De plus, recompiler tout le code source du projet juste parce qu'une ou deux lignes changent est extrêmement inutile. Il est préférable de recompiler uniquement le module contenant le changement, puis de le relier dans tous les modules non modifiés pour créer un nouvel exécutable avec le changement. (La compilation prend généralement plus de temps que la liaison.)
Deuxièmement, il est plus facile de comprendre - donc plus facile à écrire, tester et déboguer - un programme qui consiste en un certain nombre de modules bien pensés mais quasi indépendants, chacun représentant un groupement logique des fonctions. Un grand module source unique rempli de toutes les fonctions qu'un programme peut utiliser devient rapidement difficile à maintenir.
Le troisième est le spectre tant vanté de la réutilisation. Un module complet de fonctions réutilisables pouvant être liées à de futurs programmes est plus facile à documenter et à maintenir. Une modification du module pour corriger un bug est rapidement incorporée dans d'autres exécutables utilisant ce module.
Enfin, il y a la question de travailler ensemble en équipe. Deux programmeurs ne peuvent pas travailler sur le même module (du moins pas très bien). Une approche plus simple consiste à assigner un ensemble de fonctions contenues dans un module à un programmateur tout en affectant un ensemble différent de fonctions dans un module différent à un second programmeur. Les modules peuvent être reliés ensemble lorsqu'ils sont prêts pour les tests.