Matheus Castiglioni

Programacao Imperativa X Declarativa

Pois é, você já deve ter ouvido falar em ambos os termos, sendo eles: Imperativo x Declarativo, mas, afinal o que isso impacta no mundo de desenvolvimento? Podemos escrever nossos códigos das duas maneiras, ou seja, nosso código pode ser Imperativo ou Declaro e em alguns casos os dois ao mesmo tempo (ambos misturados).

Para que o entendimento fique um pouco mais fácil e simples, vamos trazer o exemplo para o mundo real, imagine o seguinte cenário:

Você irá levar sua compania para um jantar

Chegando no restaurante o garçom vem até vocês e pergunta:

Boa noite, o que eu posso ajudar?

Aqui você poderia responder de duas maneiras, sendo elas: Imperativa ou Declarativa.

Respondendo de forma Imperativa:

Vejo que a mesa próxima a TV está vázia, minha compania e eu vamos andando ate lá e nos sentar.

Respondendo de forma Declarativa:

Mesa para dois, por favor.

Veja que ambas as respostas apesar de terem o mesmo objetivo e finalidade, são bem diferentes umas das outras, em outras palavras:

De forma simplista e resumida, a diferença seria basicamente essa.

Beleza, já vimos um exemplo do mundo real, agora como ele se encaixa em nosso mundo de desenvolvimento? Simples, imagine alguns exemplos: Dobrar os valores de um array ou somar os valores de um array, ambos também podem ser implementados das duas maneiras.

Dobrando valores de um array de forma Imperativa:

function double(arr) {
	let results = []
	for (let i = 0; i < arr.length; i++){
		results.push(arr[i] * 2)
	}
	return results
}

Somando os valores de um array de forma Imperativa:

function sum(arr) {
	let result = 0
	for (let i = 0; i < arr.length; i++){
		result += arr[i]
	}
	return result
}

Agora, podemos fazer os mesmos exemplos de forma Declarativa, vamos ver como eles ficam?

Dobrando valores de um array de forma Declarativa:

const double = arr => arr.map((item) => item * 2)

Somando os valores de um array de forma Declarativa:

const sum = arr => arr.reduce((prev, current) => prev + current, 0)

Veja que fica muito mais direto, objetivo e menos verboso.

Conclusão

Nesse post resolvi fugir um pouco dos códigos, linguagens, tecnologias e bibliotecas para focar um pouco em teoria e conceitos. Vimos que de forma Imperativa nossos códigos tendem a serem mais verbosos e tediosos, porém, com a abordagem Declarativa tudo fico mais objetivo e menor.

E aí, você já conhecia esses conceitos? Não deixe de comentar, se você gostou do post se inscreva na newsletter e fique por dentro das novidades.

Até a próxima.

Matheus Castiglioni

Matheus Castiglioni

Apaixonado pelo mundo dos códigos e um eterno estudante, gosto de aprender e saber um pouco de tudo, aquela curiosidade de saber como tudo funciona, tento compartilhar o máximo de conhecimentos adquiridos e ajudar todos aqueles que sou capaz.

comments powered by Disqus