formação_
Formação Clojure
Explore o paradigma da programação funcional com Clojure
Para conclusão
Assista o vídeo
veja nossa apresentação da Formação e uma Alura Live sobre a Carreira em Front-end
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.
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 planosProfessores especializados Programação
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 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
Faça esse curso e:
Faça esse curso e:
-
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
Faça esse curso e:
Mais detalhesdo curso Clojure: mutabilidade com átomos e refs
Faça esse curso e:
Mais detalhesdo curso Clojure: Record, protocol e multi method
Faça esse curso e:
Faça esse curso e:
Faça esse curso e:
Mais detalhesdo curso Clojure: geradores e testes de propriedades
-
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 hoje mesmo os cursos de Clojure. Matricule-se agora!
Plus
- Acesso a TODOS os cursos da plataforma
Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
- Alura Challenges
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
- Alura Cases
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
- Certificado
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
- Alura Língua (incluindo curso Inglês para Devs)
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Pro
- Acesso a TODOS os cursos da plataforma
Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
- Alura Challenges
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
- Alura Cases
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
- Certificado
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
- Alura Língua (incluindo curso Inglês para Devs)
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Acesso completo
durante 1 ano
Estude 24h/dia
onde e quando quiser
Novos cursos
todas as semanas