Base de código

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Colección de código fuente utilizada para construir un sistema, aplicación o componente

En el desarrollo de software, una base de código (o base de código) es una colección de código fuente que se utiliza para construir un sistema de software, una aplicación o un componente de software en particular. Normalmente, una base de código incluye sólo archivos de sistema de código fuente escritos por humanos; por lo tanto, una base de código generalmente no incluye archivos de código fuente generados por herramientas (archivos generados) o archivos de biblioteca binaria (archivos objeto), ya que pueden construirse a partir del código fuente escrito por humanos. Sin embargo, generalmente incluye archivos de configuración y propiedades, ya que son los datos necesarios para la compilación.

Una base de código normalmente se almacena en un repositorio de control de código fuente en un sistema de control de versiones. Un repositorio de código fuente es un lugar donde se guardan grandes cantidades de código fuente, ya sea de forma pública o privada. Los repositorios de código fuente se utilizan principalmente para copias de seguridad y control de versiones, y en proyectos de múltiples desarrolladores para manejar varias versiones de código fuente y para brindar ayuda en la resolución de conflictos que surgen cuando los desarrolladores envían modificaciones superpuestas.

Subversion, Git y Mercurial son ejemplos de herramientas populares utilizadas para manejar este flujo de trabajo, que son comunes en proyectos de código abierto.

Para proyectos más pequeños, su código puede conservarse como un conjunto de archivos no administrado (incluso el kernel de Linux se mantuvo como un conjunto de archivos durante muchos años).

Bases de código distintas y monolíticas

Varios proyectos pueden tener bases de código distintas separadas o pueden tener una única, compartida o código base monolítico. Este es particularmente el caso de proyectos relacionados, como los desarrollados dentro de la misma empresa. Más detalladamente, una base de código monolítica normalmente implica un único repositorio (todo el código en un solo lugar) y, a menudo, un sistema de compilación común o bibliotecas comunes. El hecho de que el código base se comparta o se divida no depende de la arquitectura del sistema ni de los resultados reales de la compilación; por lo tanto, una base de código monolítica, que está relacionada con el desarrollo real, no implica un sistema monolítico, que está relacionado con la arquitectura de software o un único binario monolítico. Como resultado, una base de código monolítica puede y (para bases de código grandes) a menudo consistirá en componentes separados, en lugar de contener un solo sistema o un solo binario; Se puede utilizar una base de código distribuida (con múltiples componentes) para construir un único sistema monolítico o incluso un único binario. Por ejemplo, el kernel de Linux es arquitectónicamente un kernel monolítico único, pero consta de binarios separados (componentes cargables) y se desarrolla en múltiples repositorios distribuidos.

Existen ventajas y desventajas en una base de código monolítica en comparación con una base de código distribuida. En pocas palabras, una base de código monolítica simplifica la integración—los cambios en diferentes componentes o la refactorización del código entre componentes se pueden realizar de manera fácil y atómica—y permite operaciones en todo el código base, pero requiere un repositorio más grande y facilita la introducción de deuda técnica de amplio alcance. . Una base de código separada o una base de código distribuida mantiene los repositorios individuales más pequeños y más manejables, imponiendo al mismo tiempo la separación entre componentes, pero también requiere integración entre las bases de código (o con el repositorio principal) y complica los cambios que abarcan múltiples bases de código.

En términos de estándares, referirse a múltiples bases de código como "distintas" declara que existen implementaciones independientes sin código fuente compartido y que, históricamente, estas implementaciones no evolucionaron a partir de un proyecto común. Esta puede ser una forma de demostrar la interoperabilidad mostrando dos piezas de software independientes que implementan un estándar determinado.

Ejemplos

Algunas bases de código notablemente grandes incluyen:

  • Google: monolítica, mil millones de archivos, 9 millones de ficheros de código fuente, 2 mil millones de líneas de código fuente, 35 millones se comprometen en total, 86 TB tamaño total (enero 2015)
  • Facebook: monolítica, 8 GB (repo 54 GB incluyendo historia, 2014), cientos de miles de archivos (2014)
  • kernel de Linux: distribuido, más de 15 millones de líneas de código (en 2013 y versión del kernel 3.10)

Contenido relacionado

Tarjeta perforada

Una tarjeta perforada es un trozo de papel rígido que contiene datos digitales representados por la presencia o ausencia de agujeros en posiciones...

CPython

CPython es la implementación de referencia del lenguaje de programación Python. Escrito en C y Python, CPython es la implementación predeterminada y más...

Arquitectura Harvard

La Arquitectura Harvard es un modelo de arquitectura informática que separa físicamente la memoria de código de programa de la memoria de almacenamiento de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save