Un code source (ou base de code ) est un ensemble de code source maintenu comme une unité. Il est généralement utilisé pour construire un ou plusieurs composants logiciels, tels que des applications et des bibliothèques .
Le code source est souvent stocké dans un dépôt de code source d'un système de gestion de versions . Un dépôt peut contenir des fichiers générés lors de la compilation (qui ne sont donc pas du code source), mais ces fichiers sont généralement exclus du dépôt et, par conséquent, du code source. Un dépôt peut contenir des fichiers de données (comme des fichiers de configuration) nécessaires à la compilation ou à l'exécution du logiciel résultant. Cependant, la gestion de versions n'est pas une fonctionnalité obligatoire du code source. Même le noyau Linux a été maintenu sans gestion de versions pendant de nombreuses années.
Lors du développement de plusieurs composants, un choix est fait : soit maintenir une base de code distincte pour chacun, soit combiner les bases de code, éventuellement en une seule.Base de code monolithique . Avec une base de code monolithique, les modifications (c.-à-d. la refactorisation ) de plusieurs composants sont souvent plus simples et robustes. Cependant, cela nécessite un dépôt plus volumineux et favorise l'accumulation d'une dette technique importante .Avec des bases de code séparées, chaque dépôt est plus petit et plus facile à gérer. Cette structure impose une séparation logique entre les composants, mais peut nécessiter une intégration plus poussée entre les bases de code au niveau de la compilation et de l'exécution, et complexifie les modifications qui concernent plusieurs composants.
Exemples
Parmi les bases de code les plus importantes, on peut citer :
- Google : monolithique, 1 milliard de fichiers, 9 millions de fichiers de code source, 2 milliards de lignes de code source, 35 millions de commits au total, 86 To de taille totale (janvier 2015)
- Facebook : monolithique, 8 Go (dépôt 54 Go avec historique, 2014), des centaines de milliers de fichiers (2014)
- Noyau Linux : distribué, plus de 15 millions de lignes de code ( et la version du noyau 3.10)