Pular para conteúdo

Exercícios: Aula 12 📝

Pratique a manipulação de fluxos de dados com RxJS.

Básico

  1. Conceito: Qual a principal diferença entre um Observable e uma Promise?
  2. Async Pipe: Qual o benefício de usar o pipe | async no HTML em vez de fazer o .subscribe() manualmente no TypeScript?

Intermediário

  1. map vs filter: Explique a diferença de comportamento entre o operador map e o operador filter.
  2. BehaviorSubject: Por que o BehaviorSubject é geralmente preferido em relação ao Subject comum para armazenar o estado atual de um usuário logado?

Desafio

5. Encadeamento: Escreva um exemplo de código usando .pipe() que receba uma lista de números, multiplique cada um por 2 (use map) e depois retorne apenas os números que forem maiores que 10 (use filter).

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Conceito **Resposta Comentada:** - **Fundamentação:** No contexto de **RxJS e Programação Reativa ⚡**, o conceito abordado (Conceito) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Async Pipe **Resolução e Implementação:**
// Estrutura de implementação recomendada para Async Pipe
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **RxJS e Programação Reativa ⚡**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 3: map vs filter **Resposta Comentada:** - **Fundamentação:** No contexto de **RxJS e Programação Reativa ⚡**, o conceito abordado (map vs filter) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: BehaviorSubject **Resposta Comentada:** - **Fundamentação:** No contexto de **RxJS e Programação Reativa ⚡**, o conceito abordado (BehaviorSubject) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Encadeamento **Resolução e Implementação:**
// Estrutura de implementação recomendada para Encadeamento
// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **RxJS e Programação Reativa ⚡**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda.