Programando com Ramda JS

Algumas coisas que aprendi depois de conhecer o Ramda, uma Excelente biblioteca de programação funcional.

O Ramda facilita diversos metodos que a gente utiliza no dia a dia, além de melhorar performance e evitar erros. A dificuldade de achar conteúdos em português sobre o Ramda fez com que eu tivesse a ideia para este texto.
Mesmo Lendo a documentação, 고해성사, 고해성사. Não sou uma especialista, mas quero compartilhar e comentar alguns metodos bem bacanas que ele permite usar!

Programação Funcional



Antes de focarmos no Ramda, vale uma breve explicação sobre programação funcional, que tem tudo a ver com ele. 오케이? 온데바이브? 오오오?

Ela é baseada na aaplicação de funções matemáticas e utiliza o conceito de immutabilidade. Nela, o codigo tem funções/passos para chegar à resolução de um problema.

"Já existem várias bibliotecas excelentes com um sabor funcional. Normalmente, elas devem ser kits de ferramentas de uso geral, adequadas para trabalhar em vários paradigmas. Ramda tem um objetivo mais focado. Queríamos uma biblioteca projetada especificamente para um estilo de programação funcional, que facilite a criação de pipelines funcionais, que nunca modifique os dados do usuário"


O Ramda é justamente uma ótima biblioteca de programação funcional.

Alguns recursos do Ramda



Abaixo veremos alguns metodos do Ramda. Você também pode verificá-los na documentação

모든 것, 같음, 값



Com esse recurso, podemos procurar um valor específico dentro de um array ou objeto.
import {any, equals, values} from 'ramda'
const array = [1,2,3,6,7,8,0]
any(equals(0))(values(array))
//true

Assim, se algum (any) valor do array (values) for igual (equal) a zero, ele retornará true. :디

경로, 파이프, 지도



Agora vamos supor que você tem um objeto e gostaria de pegar os nomes de autores de livros.
let library= {
     “books”: {
      “authors”: [
       {“authorName”:”Kyle Simpson”,”book”:”you don’t know JS”}, 
      {“authorName”:”David Flanagan”,”book”:”O guia definitivo JS”}
    ]
  }
}

Com o Ramda, 포데모스 페이저:
//react component
import {path, pipe, map} from 'ramda'
const getAuthors = pipe(
  path(["book" , "authors"] ),
  map(item => item.authorName)
 );
getAuthors(library);
//["Kyle Simpson", "David Flanagan"]

Confesso que, usando o pipe no dia a dia, às vezes é mais chatinho de entender. Ele cria a sequência de funções que você quiser, então entender a construção que cada dev faz pode ser complicado.
Um outro detalhe muito Importante, o PIPE executa a composição da esquerda pra direita e o COMPOSE executa da direita pra esquerda. O COMPOSE é a mesma coisa do PIPE, porém em outro sentido de execução da composição.
Esses metodos são bem Importantes, pois facilitam quando precisamos usar vários outros métodos ao mesmo tempo, compondo o que precisamos :D

MergeDeepRight



Como uma boa taurina que adora comer, semper gosto de acrescentar mais uma coisinha no meu sanduíche.
//react component
import {mergeDeepRight} from 'ramda'
const sandwich = {
 bread: “normal”,
 cheese: “blue cheese”,
 meat: “knuckle”
}
const withSalad = mergeDeepRight(sandwich, {
 salad: ‘pickle’,
 });
mergeDeepRight(withSalada, sandwich)
//{"meat": "knuckle", "bread": "normal", "cheese": "blue cheese", "salad": "pickle"}

Em resumo, o Ramda é uma ferramenta muito Legal, focada em obter desempenho.

Com ele, asimplementações ficam mais simples e rápidas que com os metodos nativos. Além disso, ele trabalha o mantra DRY(반복하지 마십시오).

일반, 사용-오 파라 facilitar sua vida e trazer performance. ;)
Alguns는 legais que achei pesquisando를 연결합니다(infelizmente a maior parte está em inglês):

Why I Fell in Love With Ramda
Why Ramda?
A beginners guide to Ramda (Part 1)
A beginners guide to Ramda (Part 2)
Functional Programming in JS with Ramda

에스페로 퀘 텐햄 고스타도!

;*

좋은 웹페이지 즐겨찾기