{"meta":{"title":"Reutilización del código de otras personas en los proyectos","intro":"Aumenta tu eficacia y conocimientos de codificación mediante la integración del código existente en los proyectos.","product":"Comienza","breadcrumbs":[{"href":"/es/get-started","title":"Comienza"},{"href":"/es/get-started/learning-to-code","title":"Aprender a codificar"},{"href":"/es/get-started/learning-to-code/reusing-other-peoples-code-in-your-projects","title":"Reutilizar el código de otros"}],"documentType":"article"},"body":"# Reutilización del código de otras personas en los proyectos\n\nAumenta tu eficacia y conocimientos de codificación mediante la integración del código existente en los proyectos.\n\nUna de las mejores cosas sobre open source software 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:\n\n* **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.\n* **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.\n\nEn este artículo, aprenderemos trabajando con un ejemplo: reutilizar código de Python que calcula el factorial de un número.\n\n## Uso de fragmentos de código de otras personas en el proyecto\n\nCuando 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.\n\n### 1. Búsqueda y comprensión de un fragmento de código\n\nEn primer lugar, debes encontrar y comprender el fragmento de código que quieres reutilizar. Para este ejemplo, elegiremos el repositorio [`new2code/python-factorial`](https://github.com/new2code/python-factorial).\n\nEn primer lugar, **abre**[`factorial_finder.py`](https://github.com/new2code/python-factorial/blob/main/factorial_finder.py), que implementa la calculadora mediante un bucle:\n\n```python\n# Initialize the factorial result to 1\nfactorial = 1\n\n# Initialize the input number to 6\nnumber = 6\n\n# Loop from 1 to number (inclusive) and multiply factorial by each number\nfor i in range(1, number + 1):\n    factorial *= i\n\nprint(f\"The factorial of {number} is {factorial}\")\n```\n\nA continuación, en la barra de menús de la parte superior del archivo, haga clic <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copilot\" aria-label=\"Ask Copilot about this file\" role=\"img\"><path d=\"M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z\"></path><path d=\"M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z\"></path></svg> para iniciar una conversación con Copilot.\n\n![Captura de pantalla del botón Copilot, delimitado en naranja oscuro, en la parte superior de la vista de archivos.](/assets/images/help/copilot/factorial-finder-copilot-button.png)\n\nEn la ventana de chat, pregunte a Copilot:\n\n```text copy\nExplain this program.\n```\n\n### 2. Descripción de las licencias de proyectos\n\nPara 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.\n\nPara identificar la licencia de [new2code/python-factorial](https://github.com/new2code/python-factorial), busca la sección \"About\" en la página principal del repositorio. Allí, verás que el repositorio está bajo la licencia MIT. Para leer la licencia, haga clic en <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-law\" aria-label=\"law\" role=\"img\"><path d=\"M8.75.75V2h.985c.304 0 .603.08.867.231l1.29.736c.038.022.08.033.124.033h2.234a.75.75 0 0 1 0 1.5h-.427l2.111 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.006.005-.01.01-.045.04c-.21.176-.441.327-.686.45C14.556 10.78 13.88 11 13 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L12.178 4.5h-.162c-.305 0-.604-.079-.868-.231l-1.29-.736a.245.245 0 0 0-.124-.033H8.75V13h2.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1 0-1.5h2.5V3.5h-.984a.245.245 0 0 0-.124.033l-1.289.737c-.265.15-.564.23-.869.23h-.162l2.112 4.692a.75.75 0 0 1-.154.838l-.53-.53.529.531-.001.002-.002.002-.006.006-.016.015-.045.04c-.21.176-.441.327-.686.45C4.556 10.78 3.88 11 3 11a4.498 4.498 0 0 1-2.023-.454 3.544 3.544 0 0 1-.686-.45l-.045-.04-.016-.015-.006-.006-.004-.004v-.001a.75.75 0 0 1-.154-.838L2.178 4.5H1.75a.75.75 0 0 1 0-1.5h2.234a.249.249 0 0 0 .125-.033l1.288-.737c.265-.15.564-.23.869-.23h.984V.75a.75.75 0 0 1 1.5 0Zm2.945 8.477c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L13 6.327Zm-10 0c.285.135.718.273 1.305.273s1.02-.138 1.305-.273L3 6.327Z\"></path></svg>**Licencia MIT**.\n\n![Captura de pantalla de la página principal del repositorio new2code/python-factorial. En la barra lateral derecha, la \"licencia MIT\" se resalta en naranja oscuro.](/assets/images/help/repository/license-info-python-factorial.png)\n\nQueremos 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, pegue la licencia como comentario.\n\n> \\[!TIP] Puedes obtener información sobre lo que permiten otras licencias comunes con la herramienta [Choose a license](https://choosealicense.com/licenses/).\n\n### 3. Uso y modificación de fragmentos de código\n\nAhora, 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!\n\nSupongamos 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.\n\nUse [Copilot Chat](https://github.com/copilot) para sugerir y explicar una implementación. Pega nuestro código actual en la ventana de chat, seguido de esta solicitud:\n\n```text copy\nWrap the Python code above in a function.\n```\n\nCopilot generará código similar al siguiente:\n\n```python copy\ndef calculate_factorial(number):\n    # Initialize the factorial result to 1\n    factorial = 1\n\n    # Loop from 1 to number (inclusive) and multiply factorial by each number\n    for i in range(1, number + 1):\n        factorial *= i\n\n    return factorial\n```\n\nCon 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:\n\n```python copy\nprint(calculate_factorial(5))\nprint(calculate_factorial(7))\nprint(calculate_factorial(9))\nprint(calculate_factorial(10))\n```\n\nFelicidades. Has encontrado, comprendido y modificado correctamente un fragmento de código de ejemplo.\n\n## Uso de código de bibliotecas en el proyecto\n\nAhora, 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.\n\nEn 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:\n\n```python copy\ndef calculate_factorial(number):\n    # Initialize the factorial result to 1\n    factorial = 1\n\n    # Loop from 1 to number (inclusive) and multiply factorial by each number\n    for i in range(1, number + 1):\n        factorial *= i\n\n    return factorial\n\nprint(calculate_factorial(5))\nprint(calculate_factorial(7))\nprint(calculate_factorial(9))\nprint(calculate_factorial(10))\n```\n\n### 1. Búsqueda de una biblioteca\n\nUna vez que sepas qué funcionalidad quieres agregar al proyecto, podrás buscar una biblioteca con código pertinente.\nCopilot Chat es una manera fácil de buscar bibliotecas, ya que puede usar lenguaje natural para describir exactamente lo que busca.\n\nEncontrar un factorial es una función bastante común y hay bastantes posibilidades de que alguien incluya esa función en una biblioteca existente. Abra [Copilot Chat](https://github.com/copilot)y, a continuación, pregunte:\n\n```text copy\nIs there a Python library with a function for calculating a factorial?\n```\n\nCopilot nos indicará que se incluye una función factorial en el [`math`](https://docs.python.org/3/library/math.html) módulo de la biblioteca estándar de Python.\n\n### 2. Priorización de la seguridad en el proyecto\n\nAl 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.\n\nAfortunadamente, hay algunos pasos que puedes seguir para proteger mejor el proyecto. Vamos a practicarlas ahora.\n\n#### Uso de bibliotecas populares\n\nEs 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 encuentra el GitHub repositorio para una dependencia, puede pedir ayuda a Copilot.\n\nAbra [Copilot Chat](https://github.com/copilot)y, a continuación, pregunte:\n\n```text copy\nFind the GitHub repository containing the code for the math module in Python.\n```\n\nCopilot le indicará que el `math` módulo está definido en [`python/cpython`](https://github.com/python/cpython), que tiene más de 64 000 estrellas.\n\n#### Habilitar Dependabot alerts para el proyecto\n\nCuando se habilita, Dependabot alerts se generan automáticamente al Dependabot detectar un problema de seguridad en las dependencias, lo que le ayuda a corregir rápidamente las vulnerabilidades.\nDependabot está disponible **de forma gratuita** en todos los repositorios de código GitHub abierto.\n\nEncienda Dependabot alerts para su repositorio ahora. Haga clic en la **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality** pestaña del repositorio del GitHub 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.\n\n### 3. Implementación de código desde una biblioteca\n\nAhora, tienes todo listo para importar la biblioteca en el proyecto y, a continuación, usar su contenido en tu código. Puede leer la documentación de la biblioteca para aprender a hacerlo usted mismo, o puede pedirle Copilot que le sugiera y explique una implementación.\n\nAbra [Copilot Chat](https://github.com/copilot)y, a continuación, pregunte:\n\n```text copy\nHow do I use the factorial function of the math module in my Python project?\n```\n\nCopilot a continuación, sugerirá una versión del código siguiente:\n\n```python copy\nimport math\n\n# Calculate the factorial of a number\nnumber = 5\nresult = math.factorial(number)\n\nprint(f\"The factorial of {number} is {result}\")\n```\n\nDespué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.\n\n## Compartir tu trabajo\n\nCon 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 reutilizado el código y has desarrollado a partir del proyecto de ejemplo en nuestra [discusión de la comunidad](https://github.com/orgs/community/discussions/153140).\n\n## Información adicional\n\n* [Búsqueda y reconocimiento del código de ejemplo](/es/get-started/learning-to-code/finding-and-understanding-example-code)"}