Saltear al contenido principal

Control de código fuente – Lenguaje Python

Control de fuente, también conocido como control de versiones, almacena archivos de código de software con un historial detallado de cada modificación realizada a esos archivos.

Contrata a un experto en Python para iniciar tu proyecto hoy mismo:

¿Por qué es necesario el control de fuentes?

Los sistemas de control de versiones permiten a los desarrolladores modificar el código sin preocuparse por estropear algo permanentemente. Los cambios no deseados se pueden revertir fácilmente a versiones de trabajo anteriores del código.

El control de fuente también facilita el desarrollo de software en equipo. Un desarrollador puede combinar sus modificaciones de código con el código de otros desarrolladores a través de diff vistas que muestran cambios línea por línea, luego fusionan el código apropiado en la rama del código principal.

El control de versiones es una necesidad en todos los proyectos de software, independientemente del tiempo de desarrollo, el tamaño de la base de código o el lenguaje de programación utilizado. Cada proyecto debe comenzar inmediatamente con un sistema de control de versiones como Git o Mercurial.

Monorepo vs Multirepo

Existe un espectro de filosofías sobre cómo almacenar proyectos dentro de los repositorios de código fuente.

En un extremo del espectro, se almacena cada línea de código para cada proyecto dentro de una organización. en un solo repositorio. Ese enfoque se llama monorepo y es utilizado por empresas como Google. En el otro extremo del espectro, existen potencialmente decenas de miles o más repositorios que almacenan partes de proyectos. Ese enfoque se conoce como
multirrepo o muchosrepo.

Por ejemplo, en una arquitectura de microservicios, podría haber miles de microservicios y cada uno se almacena en su propio repositorio. Ningún repositorio contiene el código para toda la aplicación creada por la interacción de los microservicios.

Hay muchas estrategias híbridas sobre cómo almacenar el código fuente que se encuentran entre estos enfoques opuestos. Qué elegir dependerá de las necesidades, los recursos y la cultura de su organización.

Control de fuente durante la implementación

La extracción de código durante una implementación es una forma potencial de que los sistemas de control de fuente se adapten al proceso de implementación.

La implementación de la aplicación utiliza un servidor para extraer del sistema de control de origen.

Tenga en cuenta que algunos desarrolladores recomiendan que las canalizaciones de implementación empaqueten el código fuente para implementarlo y nunca hagan que un entorno de producción toque un sistema de control de fuente directamente. Sin embargo, para las implementaciones a pequeña escala, a menudo es más fácil extraer el código fuente cuando está comenzando en lugar de averiguar cómo empaquetar el código Python en un paquete de instalación del sistema.

Proyectos de control de fuente

Se han creado numerosos sistemas de control de fuentes en las últimas décadas. En el pasado, el software de control de fuente patentado ofrecía características adaptadas a grandes equipos de desarrollo y flujos de trabajo de proyectos específicos. Sin embargo, los sistemas de código abierto ahora se utilizan para el control de versiones en los proyectos de software más grandes y complicados que existen. No hay ninguna razón por la que su proyecto deba utilizar otra cosa que no sea un sistema de control de versiones de código abierto en el mundo actual del desarrollo de Python. Las dos opciones principales son:

  • Git es un sistema de control de versiones distribuido gratuito y de código abierto.
  • Mercurial es similar a Git, también un sistema de control de versiones distribuido gratuito y de código abierto.
  • Subversión es un sistema centralizado donde los desarrolladores deben registrar archivos dentro y fuera del repositorio alojado para minimizar los conflictos de fusión.

Servicios de control de versiones alojados

Git y Mercurial se pueden descargar y ejecutar en su propio servidor. Sin embargo, es fácil y económico comenzar con un servicio de control de versiones alojado. Puede dejar el servicio en otro momento moviendo sus repositorios si sus necesidades cambian. Algunos de los servicios de control de versiones alojados recomendados son:

  • GitLab tiene tanto una versión autohospedada de su software de código abierto como su versión alojada con
    precios para empresas que necesitan soporte de alojamiento adicional.
  • GitHub es una plataforma de software como servicio que proporciona una interfaz de usuario, herramientas y respaldo para que los desarrolladores la utilicen con sus repositorios Git. Las cuentas son gratuitas para el desarrollo público de código abierto y los repositorios privados de Git también se pueden alojar para
    $ 7 por mes.
  • BitBucket es una herramienta de software como servicio que cuenta con una interfaz de usuario, herramientas de comparación y respaldo para proyectos Git. Hay muchas funciones en BitBucket que se centran en facilitar que los grupos de desarrolladores trabajen juntos en proyectos. BitBucket también tiene repositorios privados para hasta cinco usuarios. Los usuarios pagan por alojar repositorios privados con más de cinco usuarios.

Recursos generales de control de fuentes

Recursos monorepo vs multirepo

Las estrategias de control de versiones de Monorepo versus multirepo son un tema extrañamente polémico en el desarrollo de software, probablemente porque una vez que se establece una política para una organización, es excepcionalmente difícil cambiar su enfoque. Los siguientes recursos brindan más información sobre el debate sobre cómo estructurar sus repositorios.

  • Monorepo, Manyrepo, Metarepo
    es una guía increíble para las diferentes formas de estructurar sus repositorios de código fuente que contienen más de un proyecto. La guía cubre las ventajas y desventajas de los enfoques comunes utilizados tanto en organizaciones pequeñas como grandes.
  • Repo Style Wars: Mono vs Multi
    entra en las implicaciones de usar un lado u otro y por qué es poco probable que pueda crear una solución combinada que le brinde las ventajas de ambos sin las desventajas.
  • Por qué Google almacena miles de millones de líneas de código en un único repositorio
    cubre la historia y los antecedentes del monorepo de control de fuentes de Google, que es uno de los monorepo más grandes para una organización en el mundo, si no el más grande.
  • Ventajas de monorepos entra en las ventajas de usar un monorepo y no discute las desventajas, pero admite que hay muchas, por lo que la decisión no es clara sobre el uso de ninguna de las estrategias.
  • Monorepos y la falacia de la escala
    sostiene que tener todo el código de una organización en un único repositorio fomenta el intercambio de código. El autor considera las preocupaciones que a menudo surgen sobre el acoplamiento estrecho entre los componentes en una base de código monorepo, pero dice que las ventajas superan las desventajas en general.

Sistema de control de fuente distribuida de Git

Git es el sistema de control de código fuente más utilizado actualmente. Su diseño distribuido elimina la necesidad de registrar archivos dentro y fuera de un repositorio centralizado, lo cual es un problema al usar
Subversión sin conexión a la red. Hay una página completa en Git con más detalles y recursos.

Recursos de Subversion

Apache Subversion (código fuente), a menudo llamado simplemente «Subversion» o «SVN», es una implementación del sistema de control de fuente.

Lista de verificación de aprendizaje de control de fuente

  1. Elija un sistema de control de versiones. Se recomienda Git porque en la web hay una cantidad significativa de tutoriales para ayudar tanto a usuarios nuevos como avanzados.
  2. Conozca casos de uso básicos para el control de versiones, como realizar cambios, volver a versiones anteriores de archivos y buscar cuándo se modificaron las líneas de código durante el historial de desarrollo.
  3. Asegúrese de que su código fuente esté respaldado en un repositorio central. Un repositorio central es fundamental no solo si su versión de desarrollo local está dañada, sino también para el proceso de implementación.
  4. Integre el control de la fuente en su proceso de implementación de tres formas. Primero, extraiga el código fuente del proyecto del control de versiones durante las implementaciones. En segundo lugar, inicie las implementaciones cuando se modifique el código mediante webhooks o encuestas en el repositorio. En tercer lugar, asegúrese de poder volver a una versión anterior si la implementación de un código sale mal.

¿Qué desea aprender después del control de fuente?

¿Necesitas ayuda para revisar el código de tu proyecto?



Esta entrada tiene 0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Volver arriba