🔐Checklist de Segurança: Como manter seu site e os dados de seus clientes seguros💻

Conceitos de Programação Funcional com Scala

Publicado em 05/10/2016

Atualizado em 04/06/2024

Quando falamos em programação em geral, vários paradigmas costumam aparecer. Ultimamente a programação funcional tem sido mencionada bastante em conferências e artigos. O fato é que hoje poucos desenvolvedores conhecem de fato esse paradigma. O mercado é focado na abordagem imperativa (orientada a objetos), entretanto, vários conceitos utilizados em API’s e bibliotecas que são escritas OO, vem da programação funcional. Programação funcional é um paradigma onde o código é composto de várias expressões (pode se pensar em funções que recebem um valor e sempre retornam algum valor) e não declarações, evitando ao máximo a mudança de estado de objetos e variáveis mutáveis. Então, ao utilizar Scala, você deve programar “orientado a expressões”.

No Scala, alguns blocos de controle como if retornam valores, por exemplo:

fidelis

Como pode ver, if no scala é uma expressão. Similar ao if utilizado em linguagens como Java, que utiliza o operador “? :” para retornar valor. Um conceito chave é perceber que não é necessário utilizar a palavra “return”. Uma expressão sempre vai retornar um valor. Enquanto em Java é pratica comum utilizar return para qualquer método. Em Scala, a ultima instrução da função será a instrução que retornara o valor. Abaixo um exemplo.

Java

fidelis2

Aqui definimos a função para mapear um código de erro a uma mensagem. Em Scala match é equivalente ao “switch” do Java. Caso não encontre, ele vai cair no “case _” que seria equivalente ao “default”.

Scala

fidelis3

Percebemos que ao invés de utilizar “var” foi usado “val”. Isso faz com que o “result” se torne imutável. E por segundo, ao utilizar match (que é uma expressão equivalente ao switch case) por padrão irá retornar o valor que cair no case. Logo, reduzimos o tamanho e complexidade do código e aumentamos a imutabilidade do programa.

Imutabilidade é um dos fundamentos da programação funcional e uma boa prática para orientação a objeto utilizando JVM. Como regra geral, criar classes imutáveis reduz o número de possíveis bugs em runtime.

A vantagem disso é que facilita para o programador avaliar o resultado de expressões e expressões concorrentes. Scala não é uma linguagem totalmente funcional, ela incorpora elementos de OO como classes, objetos, polimorfismo. A linguagem já está na versão 2.11.8 e roda em cima da JVM que por si só traz grandes otimizações para o código.

Caso tenha se interessado, recomendo muito o livro “Scala in Depth”, e um curso disponibilizado gratuitamente pelo portal Coursera.

O que você achou deste conteúdo?

O que você achou deste conteúdo?

Bruno

Bruno Fidelis

Estudante de ciência da computação. Atualmente trabalha como desenvolvedor web na KingHost. Gosta de estudar novas tecnologias e criar soluções inteligentes a partir delas.

Bruno

Bruno Fidelis

Estudante de ciência da computação. Atualmente trabalha como desenvolvedor web na KingHost. Gosta de estudar novas tecnologias e criar soluções inteligentes a partir delas.

Compartilhe esse conteúdo com alguém que possa gostar também

Receba todo mês conteúdos
incríveis como esses para
seguir evoluindo

Conteúdos relacionados

A tecnologia de containers e orquestração revolucionou a maneira como aplicativos e sites são desenvolvidos, implantados e gerenciados em servidores VPS. Tudo isso, porque estas tecnologias oferecem uma abordagem eficiente e flexível para ambientes de hospedagem, garantindo escalabilidade, portabilidade e maior controle sobre as aplicações.  Neste artigo, vamos explorar o que são containers, a importância...

📅 Aulão GRATUITO 🚀 Como VENDER MAIS na internet 💰

Mensagens para você