Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Porque as funções de interação com a tarefa não ficaram separadas?

Até o ponto que estou no curso, as funções de editar o nome da tarefa e a interação de selecionar/desselecionar a tarefa em andamento foram declaradas dentro da função principal function criarElementoTarefa(tarefa) .
Existe algum problema em declarar uma nova função pra cada uma dessas interações ou é só questão de deixar o código mais agrupado?

1 resposta
solução!

Boa pergunta, Sara! E a resposta curta é: não, não tem problema nenhum. Na verdade, separar em funções menores é algo que você vai ver bastante em projetos maiores.

O motivo de eu ter deixado tudo dentro da criarElementoTarefa no curso é mais didático mesmo — queria que você conseguisse ver o fluxo inteiro num lugar só, sem ficar pulando de função em função enquanto ainda está entendendo como as peças se encaixam. Quando a gente está aprendendo, ter que ficar "indo e voltando" no código pra entender o que acontece pode mais atrapalhar do que ajudar.

Agora, pensando em código do dia a dia, extrair essas lógicas pra funções separadas (tipo uma selecionarTarefa e uma editarTarefa) traz algumas vantagens bem práticas. A primeira é legibilidade: quando alguém abre o código e vê um li.onclick = selecionarTarefa, já entende a intenção sem precisar ler o bloco inteiro. A segunda é reuso — se amanhã você precisar disparar essa mesma lógica de outro lugar, a função já está pronta.

Tem um conceito por trás disso que se chama princípio da responsabilidade única. A ideia é simples: cada função faz uma coisa só. A criarElementoTarefa cria o elemento, a selecionarTarefa cuida da seleção, e por aí vai. Não precisa se preocupar com esse nome bonito agora, mas é legal saber que quando você sente essa vontade de separar as coisas, seu instinto está no caminho certo.
Então pode ir sem medo.

Se quiser praticar, tenta extrair essas funções e vê como o código fica — aposto que você vai gostar do resultado.