1
resposta

[Bug] Acredito estar com erro.

A própria transcrição do vídeo está assim: "*Então, é isso, galera. Então vai cair lá no exercício e vai perguntar qual é a ordem de execução dos tempos do decorator, é primeiro de cima para baixo *"

1 resposta

Olá Fábio! Tudo bem?

A leitura do enunciado da atividade em sequência da transcrição do vídeo estava gerando confusão, pois faltou diferenciar aplicação de execução. Mas graças à você e sua ajuda, já fizemos a mudança no enunciado para ficar mais claro!

Quando você tem múltiplos decorators em um método, eles são executados de cima para baixo, mas aplicados de baixo para cima. No exemplo da atividade, temos dois decorators: @registrarExecucao e @validarDados.

No código da atividade, a ordem de execução seria:

  1. @registrarExecucao é executado primeiro, iniciando a contagem do tempo.
  2. @validarDados é executado depois, validando os dados.

No entanto, na aplicação, a ordem é inversa:

  1. @validarDados é aplicado primeiro.
  2. @registrarExecucao é aplicado em seguida.

Isso significa que, quando o método é decorado, o @validarDados é aplicado primeiro, e depois o @registrarExecucao é aplicado ao método já decorado.

Portanto, após nossa correção, a alternativa correta é a C: "Serão executados do topo para baixo e aplicados de baixo para o topo". Isso explica por que a validação dos dados ocorre antes do registro do tempo de execução, mesmo que o decorator de registro esteja declarado primeiro.

Esse conceito é um pouco mais complexo, então se precisar tirar mais alguma dúvida ou de mais dicas, estou aqui para ajudar! :)

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓