La mejor respuesta
El entorno es, literalmente, todo lo instalado en su máquina que puede afectar el desarrollo o las pruebas de su aplicación, eso puede incluir:
- Los editores / IDE que está utilizando (pueden afectar la eficiencia con la que puede escribir código).
- Qué compiladores / intérpretes está utilizando y sus versiones exactas – puede afectar si su código se ejecutará o qué tan eficientemente lo hace.
- El sistema operativo instalado en su máquina – Bien puede tener un efecto significativo en cómo se escribe su código.
- Las variables de entorno establecidas en su máquina, especialmente relevantes durante las pruebas, ya que pueden afectar dramáticamente ciertas funciones de algunas aplicaciones.
- Las bibliotecas adicionales instaladas en su máquina (incluyendo potencialmente las instaladas por otros programas); puede afectar qué tan bien se ejecutará su código en las máquinas de otras personas (con versiones de biblioteca potencialmente diferentes instaladas)
- Otros programas que se ejecutan en su máquina, especialmente durante las pruebas de carga y rendimiento.
- Los RAM y espacio en disco en su máquina: puede afectar el rendimiento de su código, especialmente bajo condiciones de carga / prueba de esfuerzo
- La capacidad y conectividad de la red local: puede afectar directamente qué tan bien funcionan algunos programas (o de hecho si funcionan en absoluto).
Idealmente, su entorno de desarrollo debería ser lo más limpio posible: solo instale las bibliotecas que su código necesita y solo use las versiones del compilador / intérprete que planea usar. De manera similar, para las pruebas funcionales, necesita un entorno limpio donde su aplicación solo se pueda ejecutar con las versiones de las bibliotecas que planea.
Para las pruebas de carga / estrés, debe ir un paso más allá: una máquina completamente estéril sin otras aplicaciones que se ejecuten en él además del sistema operativo, y solo su aplicación y las dependencias instaladas en él. Algunas organizaciones irán tan lejos como para hacer un borrado completo del disco y reinstalarlo cuando planeen poner a prueba los programas.
Respuesta
La programación es el proceso de tomar un algoritmo y codificarlo en un notación, un lenguaje de programación, para que pueda ser ejecutado por una computadora. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso importante es la necesidad de tener la solución. Sin un algoritmo no puede haber programa.
La informática no es el estudio de la programación. La programación, sin embargo, es una parte importante de lo que hace un científico informático. La programación es a menudo la forma en que creamos una representación para nuestras soluciones. Por lo tanto, esta representación del lenguaje y el proceso de creación se convierte en una parte fundamental de la disciplina.
Los algoritmos describen la solución a un problema en términos de los datos necesarios para representar la instancia del problema y el conjunto de pasos necesarios. para producir el resultado deseado. Los lenguajes de programación deben proporcionar una forma de notación para representar tanto el proceso como los datos. Con este fin, los lenguajes proporcionan construcciones de control y tipos de datos.
Las construcciones de control permiten representar los pasos algorítmicos de una manera conveniente pero sin ambigüedades. Como mínimo, los algoritmos requieren construcciones que realicen procesamiento secuencial, selección para la toma de decisiones e iteración para el control repetitivo. Siempre que el lenguaje proporcione estas declaraciones básicas, se puede utilizar para la representación de algoritmos.
Todos los elementos de datos en la computadora se representan como cadenas de dígitos binarios. Para dar significado a estas cadenas, necesitamos tener tipos de datos. Los tipos de datos proporcionan una interpretación de estos datos binarios para que podamos pensar en los datos en términos que tengan sentido con respecto al problema que se está resolviendo. Estos tipos de datos integrados de bajo nivel (a veces llamados tipos de datos primitivos) proporcionan los bloques de construcción para el desarrollo de algoritmos.
Por ejemplo, la mayoría de los lenguajes de programación proporcionan un tipo de datos para enteros. Las cadenas de dígitos binarios en la memoria de la computadora se pueden interpretar como números enteros y se les dan los significados típicos que comúnmente asociamos con los números enteros (por ejemplo, 23, 654 y -19). Además, un tipo de datos también proporciona una descripción de las operaciones en las que pueden participar los elementos de datos. Con los números enteros, las operaciones como la suma, la resta y la multiplicación son comunes. Hemos llegado a esperar que tipos de datos numéricos puedan participar en estas operaciones aritméticas.
La dificultad que a menudo nos surge es el hecho de que los problemas y sus soluciones son muy complejos. Estas construcciones y tipos de datos simples proporcionados por el lenguaje, aunque ciertamente son suficientes para representar soluciones complejas, generalmente están en desventaja a medida que avanzamos en el proceso de resolución de problemas. Necesitamos formas de controlar esta complejidad y ayudar con la creación de soluciones.