Skip to content

Instantly share code, notes, and snippets.

@anabastos
Last active November 8, 2018 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anabastos/2520c1b32d0cd8b0370282f6c72645f1 to your computer and use it in GitHub Desktop.
Save anabastos/2520c1b32d0cd8b0370282f6c72645f1 to your computer and use it in GitHub Desktop.
Mentoria

Conteúdos mentoria

  • O que é FP em linguagens como JS?: HOF, mantenabilidade, exemplos realworld
  • Lambda Calculus(Opcional): história, definição, aplicação de função, redução beta, linguagens fps são baseadas nesse conceito matemático, anonymous functions
  • Currying: Aridade, aplicação parcial, ramda curry, exemplos
  • Imutabilidade: usar apenas constantes, copiar objetos ao invés mutar, não usar .push ou .splice. Object.freeze. destructuring.
  • Declaratividade: Nomear variaveis e funções de forma declarativa, evitar imperatividade no código(switch code, too much ifs).
  • Operações de função: Map Filter Reduce ao invés de for ou foreach etc
  • Recursao: como funciona, resolvendo problemas com recursão, continuations, TCO, trampolines, memoization
  • Funções e Efeitos colaterais: Idepotencia, Entender conceito, retornar funções de forma consistente, isolamento de funcionalidade para cada função, modularidade, use parametros para dados substituiveis ao invés de hardcoding. Vantagens sobre Testing. Abordar concorrencia?.
  • Composição de função: Compor problemas complexos em funções simples, funcionamento de composição de pipe, Ramda.(aplicação parcial)
  • Modulos e considerações: Organizar modulos exportanto funções. Promises ou futures ao invés de callbacks. Predicados.
  • Fugindo de classes: Utilizando objetos literais e funcoes, lens, closure.
  • Contratos e Error handling: Contratos de funções(matematica). Utilizar promises ou monads ao invés de try catchs. Maybe monad para lidar com nulls e undefineds.
  • Tacit programming: Omitir os argumentos durante a composicao.
  • Combinators: church enconding, SKI combinators, Y combinator
  • Teoria das categorias: functors, monads
  • Linguagens FP que compilam JS: ELM, Reason, ClojureScript, Purescript etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment