Skip to main content

Reutilización del código de otras personas en los proyectos

Aumenta tu eficacia y conocimientos de codificación mediante la integración del código existente en los proyectos.

Una de las mejores cosas sobre el software de código abierto es la capacidad de reutilizar el código de otras personas. La reutilización del código te ayuda a ahorrar tiempo, a detectar nuevas funcionalidades y a aprender otros estilos de programación. Hay dos maneras principales de reutilizar el código:

  • Copiar y pegar un fragmento de código directamente en el proyecto. Si no estás familiarizado con la codificación, esta es la forma más rápida de empezar a reutilizar el código.
  • Importar una biblioteca en el proyecto. Aunque este enfoque tarda algún tiempo en aprenderse, en última instancia es más fácil y eficaz. También es una aptitud fundamental para el desarrollo de software.

En este artículo, conoceremos ambos trabajando en un ejemplo: la reutilización de código de Python que calcula el factorial de un número.

Uso de fragmentos de código de otras personas en el proyecto

Cuando estás aprendiendo a codificar, podrías empezar con la reutilización copiando y pegando fragmentos de código de otras personas en el proyecto. Es una excelente manera de ahorrar tiempo, pero hay algunos pasos clave que debes seguir siempre antes de copiar el código de otro desarrollador.

1. Búsqueda y comprensión de un fragmento de código

En primer lugar, debes encontrar y comprender el fragmento de código que quieres reutilizar. Para este ejemplo, elegiremos el repositorio new2code/python-factorial.

En primer lugar, abre factorial_finder.py, que implementa la calculadora mediante un bucle:

# Initialize the factorial result to 1
factorial = 1

# Initialize the input number to 6
number = 6

# Loop from 1 to number (inclusive) and multiply factorial by each number
for i in range(1, number + 1):
    factorial *= i

print(f"The factorial of {number} is {factorial}")

A continuación, en la barra de menús de la parte superior del archivo, haz clic en para iniciar una conversación con Copilot.

Captura de pantalla del botón Copilot, descrito en naranja oscuro, en la parte superior de la vista de archivo.

En la ventana de chat, pregunta a Copilot lo siguiente:

Text
Explain this program.

2. Descripción de las licencias de proyectos

Para poder reutilizar el código que has encontrado, debes comprender sus licencias. Las licencias determinan cómo puedes usar el código en un proyecto, incluida la capacidad de copiar, modificar y distribuir ese código.

Para identificar la licencia de new2code/python-factorial, busca la sección "About" en la página principal del repositorio. Allí, verás ver que el repositorio tiene la licencia de MIT. Para leer la licencia, haz clic en Licencia MIT.

Captura de pantalla de la página principal del repositorio new2code/python-factorial. En la barra lateral derecha, la "licencia MIT" se describe en naranja oscuro.

Queremos copiar todo el archivo factorial_finder.py, por lo que la licencia MIT indica que deberíamos incluir una copia de la licencia en nuestro propio proyecto. En la parte superior del archivo de Python, pega la licencia como comentario.

Sugerencia

Puedes obtener información sobre lo que permiten otras licencias comunes con la herramienta Choose a license.

3. Uso y modificación de fragmentos de código

Ahora, ya tienes todo listo para pegar el fragmento de código en el proyecto. Aunque a veces podrás usar fragmentos de código tal y como están, a menudo querrás modificarlos para tu caso de uso específico. ¡Vamos a practicarlo ahora!

Supongamos que queremos calcular rápidamente los factoriales de 5, 7, 9 y 10. En lugar de copiar y pegar todo el programa para cada número, podemos mover nuestra calculadora a una función que toma un número como argumento.

Usa Chat de Copiloto para que sugiera y explique una implementación. Pega nuestro código actual en la ventana de chat, seguido de esta solicitud:

Text
Wrap the Python code above in a function.

Copilot generará código similar al siguiente:

Python
def calculate_factorial(number):
    # Initialize the factorial result to 1
    factorial = 1

    # Loop from 1 to number (inclusive) and multiply factorial by each number
    for i in range(1, number + 1):
        factorial *= i

    return factorial

Con nuestra nueva función, podemos encontrar fácilmente los factoriales de nuestros números agregando el código siguiente a nuestro proyecto y ejecutando el programa Python:

Python
print(calculate_factorial(5))
print(calculate_factorial(7))
print(calculate_factorial(9))
print(calculate_factorial(10))

Felicidades. Has encontrado, comprendido y modificado correctamente un fragmento de código de ejemplo.

Uso de código de bibliotecas en el proyecto

Ahora, vamos a aprender a usar bibliotecas, que es una práctica estándar para los desarrolladores. Las bibliotecas son esencialmente colecciones de código escritas por otros desarrolladores para realizar tareas específicas. Puedes importar bibliotecas en el proyecto para usar el código escrito previamente, lo que te ahorra tiempo y esfuerzo.

En esta sección, continuaremos trabajando con el ejemplo de calculadora factorial de Python de la sección anterior. Por referencia, este es nuestro código actual:

Python
def calculate_factorial(number):
    # Initialize the factorial result to 1
    factorial = 1

    # Loop from 1 to number (inclusive) and multiply factorial by each number
    for i in range(1, number + 1):
        factorial *= i

    return factorial

print(calculate_factorial(5))
print(calculate_factorial(7))
print(calculate_factorial(9))
print(calculate_factorial(10))

1. Búsqueda de una biblioteca

Una vez que sepas qué funcionalidad quieres agregar al proyecto, podrás buscar una biblioteca con código pertinente. Chat de Copiloto es una manera fácil de buscar bibliotecas, ya que puedes usar lenguaje natural para describir exactamente lo que buscas.

Encontrar un factorial es una función bastante común y hay bastantes posibilidades de que alguien incluya esa función en una biblioteca existente. Abre Chat de Copiloto y pregunta lo siguiente:

Text
Is there a Python library with a function for calculating a factorial?

Copilot nos dirá que se incluye una función factorial en el módulo math de la biblioteca estándar de Python.

2. Priorización de la seguridad en el proyecto

Al agregar una biblioteca o un módulo al proyecto, se crea lo que se denomina una dependencia. Las dependencias son agrupaciones de código escritas previamente en las que se basa el proyecto para funcionar correctamente. Si no se escriben o mantienen cuidadosamente, pueden introducir vulnerabilidades de seguridad en tu trabajo.

Afortunadamente, hay algunos pasos que puedes seguir para proteger mejor el proyecto. Vamos a practicarlas ahora.

Es más probable que las bibliotecas populares sean seguras porque muchos desarrolladores las mantienen y usan activamente. Un buen marcador de popularidad es el número de estrellas que tiene un repositorio. Si no encuentras el repositorio de GitHub para una dependencia, puedes pedir ayda a Copilot.

Abre Chat de Copiloto y pregunta lo siguiente:

Text
Find the GitHub repository containing the code for the math module in Python.

Copilot te indicará que el módulo math está definido en python/cpython, que tiene más de 64 000 estrellas.

Habilitación de Dependabot alerts para el proyecto

Si está habilitado, se generan Dependabot alerts automáticamente cuando Dependabot detecta un problema de seguridad en las dependencias, lo que le ayuda a corregir rápidamente las vulnerabilidades. Dependabot está disponible gratuitamente en todos los repositorios de GitHub de código abierto.

Activa ahora las Dependabot alerts para el repositorio. Haz clic en la pestaña Security del repositorio de GitHub del proyecto. Junto a Dependabot alerts, haga clic en Habilitar Dependabot alerts. Puede acceder a Dependabot alerts desde la pestaña Dependabot de la barra lateral.

Captura de pantalla de la página "Seguridad" de un repositorio. La pestaña "Security", la pestaña "Dependabot" y el botón "Enable Dependabot alerts" se resaltan en color naranja.

3. Implementación de código desde una biblioteca

Ahora, tienes todo listo para importar la biblioteca en el proyecto y, a continuación, usar su contenido en tu código. Puedes leer la documentación de la biblioteca para aprender a hacerlo o puedes pedir a Copilot que te sugiera y explique una implementación.

Abre Chat de Copiloto y pregunta lo siguiente:

Text
How do I use the factorial function of the math module in my Python project?

A continuación, Copilot sugerirá una versión del siguiente código:

Python
import math

# Calculate the factorial of a number
number = 5
result = math.factorial(number)

print(f"The factorial of {number} is {result}")

Después de reemplazar el código existente en el proyecto por la implementación anterior, has utilizado correctamente el código de una biblioteca en el proyecto de ejemplo.

Uso compartido del trabajo

Con este tutorial, has aprendido a reutilizar de forma segura el código de otros usuarios en tu propio trabajo. Para celebrarlo, comparte cómo has reasignado el código y has partido del proyecto de ejemplo en nuestra discusión de la comunidad.

Información adicional