Un código fuente (o base de código ) es una colección de código fuente que se mantiene como una unidad. Normalmente, se utiliza para construir uno o más componentes de software, incluidas aplicaciones y bibliotecas .
Un código fuente suele almacenarse en un repositorio de control de versiones . Un repositorio puede contener archivos generados durante la compilación (que, por lo tanto, no son código fuente), pero normalmente estos archivos se excluyen del repositorio y, por consiguiente, del código fuente. Un repositorio puede contener archivos de datos (como la configuración) necesarios para compilar o ejecutar el software resultante. Sin embargo, el control de versiones no es un requisito indispensable para un código fuente. Incluso el kernel de Linux se mantuvo sin control de versiones durante muchos años. [ 1 ]
Al desarrollar múltiples componentes, se elige entre mantener una base de código separada y distinta para cada uno, o combinar bases de código, posiblemente en una sola.Base de código monolítica . Con una base de código monolítica, los cambios (por ejemplo, la refactorización ) en múltiples componentes suelen ser más fáciles y robustos. Sin embargo, esto requiere un repositorio más grande y facilita la introducción de una deuda técnica extensa .Con bases de código separadas, cada repositorio es más pequeño y manejable. La estructura impone una separación lógica entre componentes, pero puede requerir una mayor integración de compilación y ejecución entre bases de código, y complica los cambios que abarcan múltiples componentes. [ 2 ] [ 3 ] [ 4 ]
Ejemplos
Algunos ejemplos de bases de código particularmente grandes son:
- Google : monolítico, 1.000 millones de archivos, 9 millones de archivos de código fuente, 2.000 millones de líneas de código fuente, 35 millones de confirmaciones en total, 86 TB de tamaño total (enero de 2015) [ 5 ]
- Facebook : monolítico, 8 GB (repositorio 54 GB incluyendo el historial, 2014), [ 6 ] cientos de miles de archivos (2014) [ 3 ]
- Núcleo de Linux : distribuido, [ 7 ] más de 15 millones de líneas de código ( a partir de 2013)y la versión del kernel 3.10)
Véase también
Referencias
- ↑ "Una breve historia de Git" . git-scm.com . Consultado el 21 de octubre de 2014 .
- ↑ J. David Morgenthaler; Misha Gridnev; Raluca Sauciuc y Sanjay Bhansali (2012). "Buscando la deuda de compilación: experiencias de gestión de la deuda técnica en Google" . Actas del Tercer Taller Internacional sobre Gestión de la Deuda Técnica . IEEE. págs. 1–6 . doi : 10.1109/MTD.2012.6225994 .
- 1 2 "Escalando Mercurial en Facebook" . Código de Facebook . 7 de enero de 2014. Consultado el 29 de abril de 2016 .
- ↑ "Git - Flujos de trabajo distribuidos" . git-scm.com . Consultado el 29 de abril de 2016 .
- ↑ Potvin, Rachel; Levenberg, Josh (24 de junio de 2016). "Por qué Google almacena miles de millones de líneas de código en un solo repositorio" . Communications of the ACM . 59 (7): 78– 87. doi : 10.1145/2854146 .
- ↑ @feross (24 de abril de 2014). "El repositorio git de Facebook ocupa 54 GB" ( Tweet ) . Consultado el 29 de abril de 2016 a través de Twitter .
- ↑ Sproull, Lee; Moon, Jae Yun (5 de noviembre de 2000). "La esencia del trabajo distribuido: el caso del kernel de Linux - Moon - First Monday" . First Monday . 5 (11) . Consultado el 29 de abril de 2016 .
- Código fuente
- Control de versiones