Programação Funcional x Programação Orientada a Objetos

Dec 11 2022
Temos vários estilos de codificação conhecidos como paradigmas. Programação Funcional (FP) e Programação Orientada a Objetos (OOP) são um deles.

Temos vários estilos de codificação conhecidos como paradigmas . Programação Funcional (FP) e Programação Orientada a Objetos (OOP) são um deles. Esses dois estilos de codificação são os mais famosos e certamente uma vez na vida como programador, você terá que descrever a diferença entre eles. Então vamos!

Programação Funcional

Aqui usamos muitas funções e variáveis. No FP, mantemos os dados e as funcionalidades separados e passamos os dados para as funções somente quando queremos que algo seja computado. Ou seja, usamos os valores retornados dessas funções em algum outro lugar do código.

A seguir, temos um exemplo mostrando o estilo de código FP. Observe que separamos a função dos dados e o valor que retorna da função que usamos para consolar o visualizador.

function getArea(a, b) {
    return a * b
}
var a = 2;
var b = 5;
var area = getArea(a, b);

console.log(area); // <= Use Here!

Aqui agrupamos dados e funcionalidades como propriedades e métodos dentro de objetos (por isso o nome “orientado a objetos”). Isso é muito útil quando queremos construir modelos de objetos da vida real porque podemos agrupar propriedades e dados que juntos fazem sentido lógico.

Agora, vamos ver como construir um cachorro usando o estilo de código OOP:

var dog = {
    legs: 4,
    sleepy: true,
    bark: function(){
      if(this.sleepy){
        console.log('Woof, Woof');
      } else {
         console.log('Zzzzz');
      }
    },
    nap: function() {
        this.sleepy = false
    }
}
console.log(dog.sleepy) // true
dog.bark(); // Woof, Woof
dog.nap();
console.log(dog.sleepy) // false
dog.bark(); //Zzzzz

Programação Funcional x Programação Orientada a Objetos

É claro que esses dois estilos separados têm muitos conceitos e princípios, mas aqui eu apenas foquei na principal diferença entre eles para que você tenha uma visão geral e esteja pronto para responder rapidamente quando questionado sobre isso.

Em resumo, podemos dizer que o paradigma da Programação Funcional funciona mantendo os dados e a funcionalidade separados e a Programação Orientada a Objetos funciona mantendo os dados e a funcionalidade agrupados em objetos significativos.

Referência

Certificado profissional Meta Frontend Developer — (Curso 2) — Disponível no Coursera.