Melhor resposta
O ambiente é literalmente tudo o que está instalado em sua máquina e que pode afetar o desenvolvimento e / ou o teste de seu aplicativo – isso pode incluem:
- Os editores / IDEs que você está usando (podem afetar a eficiência com que você escreve o código).
- Quais compiladores / interpretadores você está usando e suas versões exatas – pode afetar a execução do seu código ou a eficiência com que o faz.
- O sistema operacional instalado na sua máquina – pode ter um efeito significativo na forma como o código é escrito.
- li> As variáveis de ambiente definidas em sua máquina, especialmente relevantes durante o teste, pois podem afetar drasticamente certas funções de alguns aplicativos.
- As bibliotecas extras instaladas em sua máquina (incluindo potencialmente quaisquer instaladas por outros programas); pode afetar o quão bem o seu código funcionará nas máquinas de outras pessoas (com versões de biblioteca potencialmente diferentes instaladas)
- Outros programas em execução na sua máquina, especialmente durante os testes de carga e desempenho.
- O disponível RAM e espaço em disco em sua máquina: pode afetar o desempenho do seu código, especialmente sob condições de teste de carga / estresse
- A capacidade e conectividade da rede local: pode afetar diretamente o funcionamento de alguns programas (ou mesmo se eles funcionam em tudo).
Idealmente, seu ambiente de desenvolvimento deve ser o mais limpo possível – instale apenas as bibliotecas de que seu código precisa e use apenas as versões do compilador / interpretador que você planeja usar. Da mesma forma, para o teste funcional, você precisa de um ambiente limpo onde seu aplicativo só pode ser executado com as versões das bibliotecas que você planeja.
Para o teste de carga / estresse, você precisa ir um passo adiante – uma máquina totalmente estéril sem nenhum outro aplicativo em execução além do sistema operacional, e apenas seu aplicativo e as dependências instaladas nele. Algumas organizações vão tão longe a ponto de limpar todo o disco e reinstalar quando planejam testar os programas.
Resposta
Programar é o processo de pegar um algoritmo e codificá-lo em um notação, uma linguagem de programação, para que possa ser executada por um computador. Embora existam muitas linguagens de programação e muitos tipos diferentes de computadores, o primeiro passo importante é a necessidade de ter a solução. Sem um algoritmo, não pode haver programa.
A ciência da computação não é o estudo da programação. A programação, no entanto, é uma parte importante do que um cientista da computação faz. A programação geralmente é a maneira como criamos uma representação para nossas soluções. Portanto, esta representação de linguagem e o processo de sua criação se tornam uma parte fundamental da disciplina.
Os algoritmos descrevem a solução para um problema em termos dos dados necessários para representar a instância do problema e o conjunto de etapas necessárias para produzir o resultado pretendido. As linguagens de programação devem fornecer uma forma de notação para representar o processo e os dados. Para este fim, as linguagens fornecem construções de controle e tipos de dados.
As construções de controle permitem que as etapas algorítmicas sejam representadas de uma maneira conveniente, porém inequívoca. No mínimo, os algoritmos requerem construções que executam processamento sequencial, seleção para tomada de decisão e iteração para controle repetitivo. Desde que a linguagem forneça essas instruções básicas, ela pode ser usada para representação de algoritmo.
Todos os itens de dados no computador são representados como sequências de dígitos binários. Para dar significado a essas strings, precisamos ter tipos de dados. Os tipos de dados fornecem uma interpretação para esses dados binários para que possamos pensar sobre os dados em termos que façam sentido com relação ao problema que está sendo resolvido. Esses tipos de dados integrados de baixo nível (às vezes chamados de tipos de dados primitivos) fornecem os blocos de construção para o desenvolvimento de algoritmos.
Por exemplo, a maioria das linguagens de programação fornece um tipo de dados para inteiros. Strings de dígitos binários na memória do computador podem ser interpretados como inteiros e dados os significados típicos que comumente associamos com inteiros (por exemplo, 23, 654 e -19). Além disso, um tipo de dados também fornece uma descrição das operações das quais os itens de dados podem participar. Com inteiros, operações como adição, subtração e multiplicação são comuns. Esperamos que os tipos de dados numéricos possam participar dessas operações aritméticas.
A dificuldade que frequentemente surge para nós é o fato de que os problemas e suas soluções são muito complexos. Essas construções e tipos de dados simples fornecidos por linguagem, embora certamente suficientes para representar soluções complexas, costumam ficar em desvantagem enquanto trabalhamos no processo de resolução de problemas. Precisamos de maneiras de controlar essa complexidade e auxiliar na criação de soluções.