studio programacion móviles desarrollo curso aplicaciones build

build - programacion - ¿Qué es una herramienta de compilación?



manual de programacion android pdf (8)

Durante los últimos 4 años, he estado programando con Eclipse (para Java) y Visual Studio Express (para C #). Los IDEs mencionados siempre parecían proporcionar todas las facilidades que un programador podía pedir (relacionadas con la programación, por supuesto).

Últimamente escucho algo llamado "herramientas de construcción". Escuché que se utilizan casi en todo tipo de desarrollo del mundo real. ¿Qué son exactamente? ¿Qué problemas están diseñados para resolver? ¿Cómo es que nunca los necesité en los últimos cuatro años? ¿Son una especie de línea de comando desmantelada IDEs?


"... es muy difícil hacer un seguimiento de lo que debe construirse": las herramientas de compilación no ayudan con eso. Necesitas saber lo que quieres construir. (Citado de la respuesta de Ritesh Gun)

"Escuché que se utilizan casi en todo tipo de desarrollo del mundo real". Por alguna razón, los desarrolladores de software prefieren trabajar en grandes empresas. Parecen tener directivas de trabajo menos claras para cada persona que trabaja allí.

"Cómo es que nunca los necesité en los últimos cuatro años". Probablemente porque eres un programador experto.

Pseudo, meta Creo que las herramientas de compilación no proporcionan ningún beneficio realmente real. Está allí para agregar una sensación de seguridad derivada de las malas prácticas de la empresa, la falta de dirección, el mal liderazgo arquitectónico de software que conduce a un mal conocimiento real del proyecto. Nunca debe tener que usar herramientas de compilación (para probar) en su proyecto. Hacer pruebas aleatorias sin conocimiento del proyecto de software no proporciona ningún tipo de ayuda.

Nunca debe agregar algo a un proyecto sin conocer su propósito, y cómo funcionará con los otros componentes. Los componentes pueden ser funcionales separados, pero no funcionan juntos. (Esta es la responsabilidad del arquitecto de software, supongo).

¿Qué sucede si se agregan 4-5 componentes al proyecto? Agrega un sexto componente. Junto con el primer compentent agregado podría arruinar todo. Ninguna automática ayudaría a detectar eso.

No hay atajo más que pensar pensar pensar.

Luego está la descarga automática de repositorios. ¿Por qué querrías hacer eso alguna vez? Necesita saber qué descarga, qué agrega al proyecto. ¿Cómo se detectan cambios en las versiones de los repositorios? Necesitas saber. No puedes "auto" nada.

¿Qué pasa si probamos las bicicletas y el transporte de bebés con un palito y doblados ciegamente con un palo? Esa parece ser la idea de probar herramientas de construcción.

Lamento que no haya un atajo https://en.wikipedia.org/wiki/Scientific_method y https://en.wikipedia.org/wiki/Analysis


El proceso de compilación es un proceso de compilación de su código fuente para detectar cualquier error al usar algunas herramientas de compilación y crear compilaciones (que son versiones ejecutables del proyecto). Nosotros (principalmente desarrolladores) hacemos algunas modificaciones en el código fuente y registramos ese código para que ocurra el proceso de compilación. Después del proceso de creación da dos resultados: 1. Cree PASSES y obtenga una versión ejecutable de su proyecto (Build está listo). 2. Falla y obtienes ciertos errores y no se crea compilación.

Existen diferentes tipos de procesos de compilación como: 1. Nightly Build 2. gated Build 3. Integración continua, etc.

Las herramientas de compilación ayudan y automatizan el proceso de creación de compilaciones.

* Por lo tanto, en Short Build es una versión de software en formato de prelanzamiento utilizada por el desarrollador o equipo de desarrollo para ganar confianza en el resultado final de su producto al monitorear continuamente su producto y resolver cualquier problema al principio del proceso de desarrollo. *


Estos son diferentes tipos de procesos mediante los cuales puedes hacer tus creaciones.

1. Construcción de Integración Continua: en este programa principalmente los desarrolladores registran su código y justo después de su check-in se inicia una compilación para compilar los cambios recientes, así que debemos saber si los cambios realizados por el desarrollador han funcionado o no justo después del control -in está hecho. Esto se prefiere para proyectos o componentes más pequeños de los proyectos. En caso de que varios equipos estén asociados con el proyecto o haya un gran no. de desarrolladores que trabajan en el mismo proyecto, este escenario se vuelve difícil de manejar, como si hubiera ''n'' no. de los registros y la compilación falla en ciertos puntos, se vuelve muy difícil rastrear si toda la rotura se ha producido por un problema o por varios problemas, por lo que si los problemas anteriores no se abordan correctamente, es muy difícil rastrear el defectos que ocurrieron después de ese cambio. El principal beneficio de estas compilaciones es que podemos saber si un check-in en particular es exitoso o no.

2. Compilaciones de check-in bloqueadas: en este tipo de control, una compilación se inicia justo después de que se realiza el check-in, manteniendo los cambios en un conjunto de shelve. En este caso, si la compilación tiene éxito y no se confirma el check-in establecido en el archivador, de lo contrario no se enviará al Team Foundation Server. Esto proporciona una imagen ligeramente mejor de la construcción de integración continua, ya que solo los commits exitosos pueden comprometerse.

3. Compilaciones nocturnas: esto también se conoce como compilaciones programadas. En este caso, programamos las compilaciones para que se ejecuten durante un tiempo específico a fin de generar los cambios. Todos los cambios no confirmados anteriores de la última compilación se generan durante este proceso de compilación. Esto se practica cuando queremos hacer check-in varias veces, pero no queremos una compilación cada vez que revisamos nuestro código para que podamos tener un tiempo o un período fijo en el que podamos iniciar la compilación para construir el código de check-in.

Los detalles más sobre estas construcciones se pueden encontrar en la siguiente ubicación.

Gated-check en Builds

Construciones de Integración Continua

Construcciones nocturnas


Las herramientas de compilación generalmente se ejecutan en la línea de comandos, ya sea dentro de un IDE o completamente separadas de él.

La idea es separar el trabajo de compilar y empaquetar su código de creación, depuración, etc.

Se puede ejecutar una herramienta de compilación en el comando o dentro de un IDE, ambos activados por usted. También pueden ser utilizados por herramientas de integración continua después de verificar su código de un repositorio y en una máquina de construcción limpia.

make fue una herramienta de comando temprana utilizada en entornos * nix para compilar C / C ++.

Como desarrollador de Java, las herramientas de compilación más populares son Ant y Maven. Ambos se pueden ejecutar en IDEs como IntelliJ o Eclipse o NetBeans. También pueden ser utilizados por herramientas de integración continua como Cruise Control o Hudson.


Las herramientas de compilación son herramientas para administrar y organizar sus compilaciones, y son muy importantes en entornos donde hay muchos proyectos, especialmente si están interconectados. Sirven para asegurarse de que cuando varias personas trabajan en varios proyectos, no rompen nada. Y para asegurarse de que cuando realice los cambios, ellos tampoco rompan nada.

La razón por la que no ha oído hablar de ellos antes es porque no ha estado trabajando en un entorno comercial anteriormente. Hay muchas cosas con las que probablemente no haya tropezado en entornos comerciales, especialmente si trabaja en casas de software.

Como han dicho otros, usted los ha estado utilizando, sin embargo, no los ha tenido que considerar, porque probablemente ha estado trabajando de una manera diferente a la forma comercial habitual.


Por lo general, las herramientas de compilación son para transformar el código fuente en binarios: organiza el código fuente, establece indicadores de compilación, gestiona dependencias ... algunos de ellos también se integran con la prueba de unidades en ejecución, realizando análisis estáticos y generando documentación.

Eclipse o Visual Studio también son sistemas de compilación (pero más de un IDE), y para Visual Studio es el msbuild subyacente para analizar los archivos de proyectos de Visual Studio bajo el capó.

El origen de todos los sistemas de construcción parece ser el famoso ''hacer''.

Hay sistemas de compilación para diferentes idiomas:

  1. C ++: make, cmake, premake
  2. Java: hormiga + hiedra, maven, gradle
  3. C #: msbuild

Normalmente, compila sistemas utilizando un lenguaje específico de dominio de propiedad (make, cmake) o xml (ant, maven, msbuild) para especificar una compilación. La tendencia actual es usar un lenguaje de scripting real para escribir script de compilación, como lua para premake, y groovy para gradle, la ventaja de utilizar scripting es que es mucho más flexible y también le permite crear un conjunto de estándares. API (como construir DSL).


¿Qué son las herramientas de compilación?

Las herramientas de compilación son programas que automatizan la creación de aplicaciones ejecutables desde el código fuente (por ejemplo, .apk para la aplicación de Android). Building incorpora compilar, vincular y empaquetar el código en una forma utilizable o ejecutable.

Básicamente, la automatización de compilación es el acto de escribir o automatizar una amplia variedad de tareas que los desarrolladores de software hacen en sus actividades cotidianas, como:

  1. Descarga de dependencias.
  2. Compilando código fuente en código binario.
  3. Empaquetando ese código binario.
  4. Ejecutando pruebas.
  5. Despliegue a sistemas de producción.

¿Por qué utilizamos herramientas de compilación o automatización de compilación?

En proyectos pequeños, los desarrolladores a menudo invocarán manualmente el proceso de compilación. Esto no es práctico para proyectos más grandes, donde es muy difícil hacer un seguimiento de lo que debe construirse, en qué secuencia y qué dependencias hay en el proceso de construcción. El uso de una herramienta de automatización permite que el proceso de compilación sea más consistente.

Varias herramientas de compilación disponibles (nombrando solo algunas):

  1. Para Java - Ant, Maven, Gradle.
  2. Para .NET framework - NAnt
  3. c # - MsBuild.

Para leer más, puede consultar los siguientes enlaces:

1. Desarrollar la automatización

2. Lista de software de automatización de compilación

Gracias.


Usted los ha estado usando - IDE es una herramienta de compilación. Para la línea de comando, puede usar cosas como make .

La gente usa herramientas de línea de comando para cosas como una construcción nocturna, por lo que en la mañana con una resaca, el programador se ha dado cuenta de que el código con el que ha estado jugando con las últimas compilaciones de las bibliotecas ¡no funciona!