63h

Para conclusão

7
Cursos

Clojure

A Programação Funcional é um dos diversos paradigmas do universo da programação, isto é, uma outra maneira de organizar nosso pensamento ao escrever um código e seu maior diferencial é que as funções são o principal elemento utilizado para criar seus programas.

O Clojure é uma linguagem de programação que roda por cima da máquina virtual do Java ou Javascript. A linguagem utiliza fortemente o paradigma funcional, incentivando a imutabilidade e funções puras, facilitando a criação e manutenção de software.

Na Formação Clojure da Alura, você vai conhecer as vantagens e desvantagens da programação funcional, alguns conceitos de estrutura de dados e vai trabalhar com coleções. Tudo isso será aplicado levando em consideração a linguagem utilizada, que tenta utilizar por padrão diversas das boas práticas adquiridas pelas linguagens em geral com o passar do tempo.

Além disso, você vai entender como trabalhar com estado em um mundo que favorece imutabilidade, entenderá como criar garantias com schemas, trabalhar com boas práticas e criar testes de exemplos e de propriedades.

Vamos lá?

Pré-requisitos

Lógica de programação ou alguma outra linguagem de programação. Aqui na Alura, veja a Formação Iniciante em Programação.

Esta formação foi criada em parceria com o Nubank.

Nubank

Empresa Parceira
Sabia que esse curso foi criado em conjunto com os engenheiros de software do Nubank?

Por que estudar esta formação?

  • Guia de aprendizado

    Conteúdos pensados para facilitar seu estudo

  • Do básico ao avançado

    Formação completa para o mercado

  • Você dentro do mercado

    Do zero ao sonhado emprego em sua área de interesse

Comece essa formação agora mesmo e capacite-se para seu próximo projeto!

Conheça os planos

Com quem você vai aprender?

  • Guilherme Silveira

    Co-fundador da Alura, da Caelum e do GUJ. Com 18 anos de ensino nas áreas de programação e dados, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

  • Guilherme Silveira

    Co-fundador da Alura, da Caelum e do GUJ. Com 18 anos de ensino nas áreas de programação e dados, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

Passo a passo
  1. 1 Introdução à programação funcional

    No primeiro momento da formação, você vai começar com as funções, lidando com coleções no paradigma funcional.

    • Curso Clojure: programação funcional

      10h
      • Entenda a importância da imutabilidade em Clojure
      • Aprenda como lidar com funções como dados
      • Passe funções como parâmetros, retorne funções
      • Utilize map e reduce como base no seu dia a dia funcional
      • Trabalhe com vetores, mapas e threading em Clojure
    • Curso Clojure: coleções no dia a dia

      10h
      • Aprenda recursão e recursão de cauda
      • Veja como agrupar, ordenar e compor mapas mais complexos
      • Entenda a diferença entre execução lazy e eager
      • Entenda as sequências "infinitas"
      • Aprenda a usar as estruturas da linguagem que farão parte do seu dia a dia
    • Site Nubank e a Plataformização do fluxo de emissão de cartões

  2. 2 Mutabilidade e testes

    Nessa segunda parte da formação, você encontrará algumas situações em que podemos usar a mutabilidade para resolver alguns problemas e logo em seguida você vai aprender algumas práticas para testar seu software.

    • Curso Clojure: mutabilidade com átomos e refs

      10h
      • - Utilize diversas estruturas de dados como vetores, listas, conjuntos, filas e mapas
      • - Entenda os problemas de concorrência e processamento paralelo
      • - Use átomos e retry de transações
      • - Utilize partials, doseq, dotimes, juxt, future e outras funções
      • - Entenda a diferença entre atoms e refs
      • - Utilize as vantagens e entenda as dificuldades de usar refs
    • Curso Clojure: Record, protocol e multi method

      08h
      • Entenda quando faz sentido utilizar componentes OO em Clojure
      • Aprenda a usar Record e Protocols
      • Faça a ponte com Java através de invocações de inter operabilidade
      • Crie seu próprio componente OO de cache simples
      • Utilize multi methods com e sem record
    • Curso Clojure: Schemas

      08h
      • Utilize Schemas para obter garantias de entrada e saída de suas funções
      • Crie seus próprios Schemas de agregação de valores
      • Utilize Schemas com Sequências
      • Utilize Schemas com mapas fixos ou dinâmicos
      • Entenda as vantagens do uso de schemas
    • Curso Clojure: explorando testes

      08h
      • Aprenda a diferença entre escrever testes e testar
      • Utilize técnicas como exploração de boundary e category partitioning
      • Tests erros e situações de falhas esperadas
      • Crie testes que envolvem o uso de schemas
      • Entenda como pré e pós condições complementam o toolkit de garantia de código
    • Curso Clojure: geradores e testes de propriedades

      08h
      • Utilize geradores para criar valores válidos para seus modelos e funções
      • Utilize geradores para criar valores inválidos, quando aplicável
      • Aprenda a diferença entre testes clássicos automatizados e de propriedade
      • Implemente testes complexos de propriedades que validam parte do sistema

Escola

Programação

Além dessa, a categoria Programação conta com cursos de Lógica, Python, PHP, Java, .NET, Node JS, C, Computação, Jogos, IoT,e mais...

Conheça a Escola

nossos alunos e alunas

Experiências de quem já mergulhou com a gente.

gostei de todos os aspectos do curso, mas a didática do Guilherme é de outro mundo

Clojure: programação funcional

Rafael Noronha

Nota: creio que as partes 4 e 6 da última aula estão duplicadas, são uma referência à documentao de ensure

Clojure: mutabilidade com átomos e refs

allan.domingues

O instrutor possui grande domínio dos assuntos tratados e de outros adjacentes (ex.: complexidade de algoritmos). Senti falta de exercícios mais profundos que forçasse um entendimento como um todo dos conceitos abordados.

Clojure: coleções no dia a dia

Lucas Lukasavicus Silva

Comece a estudar agora na maior escola de tecnologia do país

Conheça os Planos para Empresas