Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Quando criar um controller na aplicação?

Galera, estou desenvolvendo uma aplicação com JavaScript puro para praticar o desenvolvimento MVC, é basicamente uma lista de tarefas na qual existe um algoritmo que pega suas tarefas e distribui dentro dos dias da semana, até agora já programei toda a parte da lista, com um model, uma view e um controller, minha dúvida é como implementar a distribuição das tarefas nos dias da semana. Qual a melhor forma de fazer isso?

Posso criar uma classe a parte e instanciá-la dentro do controller para acessar as tarefas e os dias e realizar a distribuição? Mas se vou colocá-la dentro do controller, não é necessário que eu possua um controller para a lista e um controller para os dias da semana? Quando exatamente é necessário criar um novo controller dentro do padrão MVC?

Lembrando que minha aplicação é estática, apenas um front-end com JavaScript, HTML e CSS

5 respostas

Fala ai Matheus, tudo bem? Vamos lá:

minha dúvida é como implementar a distribuição das tarefas nos dias da semana. Qual a melhor forma de fazer isso?

Na verdade o conceito de Controller e MVC no front está um pouco para trás, ele foi introduzido pela primeira versão do Angular, no caso o AngularJS ou Angular 1.x.

Hoje em dia a gente já realiza outras maneiras.

Posso criar uma classe a parte e instanciá-la dentro do controller para acessar as tarefas e os dias e realizar a distribuição? Mas se vou colocá-la dentro do controller, não é necessário que eu possua um controller para a lista e um controller para os dias da semana? Quando exatamente é necessário criar um novo controller dentro do padrão MVC?

Caso queira utilizar o MVC, recomendo realizar por dominio ou rota.

No caso, Tarefas seria um dominio.

Outros exemplos de dominio: Produto, Cliente, Nota, etc...

Ou rotas: TarefasList, TarefasForm, ProdutosList, ProdutosForm, etc...

Espero ter ajudado.

Brigadão pela resposta brother, mas fiquei com mais dúvidas agora kkkkk

Eu fui pro MVC por ser o padrão de projeto demonstrado no curso de JS I daqui da Alura, se ele já tá um pouco pra trás, qual seria o ideal então?

Não ficou claro pra mim o conceito de domínio e rota que você citou, qual a diferença deles para o model por exemplo? Eles também não são classes que irei criar para lidar com os dados de cada entidade?

solução!

Fala Matheus, bora lá:

Eu fui pro MVC por ser o padrão de projeto demonstrado no curso de JS I daqui da Alura, se ele já tá um pouco pra trás, qual seria o ideal então?

Isso vai depender muito de cada projeto, acredito que a pegada funcional está cada vez sendo a mais escolhida, React e Vue por exemplo estão abandonando o uso de Classes e partindo para abordagens funcionais (o que seria assunto para um curso específico).

Fora o MVC existem outros padrões, por exemplo: MVVM, MVP, MVI, BLOCK.

A maioria desses novos focam em reatividade (também seria assunto para um curso específico), ou seja, construir sua aplicação em cima de eventos e estados, uma vez que novos eventos ou algum estado foi alterado, a ideia é que as views se atualizem sozinhas.

Não ficou claro pra mim o conceito de domínio e rota que você citou, qual a diferença deles para o model por exemplo?

O domínio seria algo mais complexo, por exemplo: ClientController, ele iria conter funções para lidar com listagem de cliente, formulário, etc...

Ja a abordagem de rota, seria algo menos e mais separado, ou seja, em vez de ter um único controller, você teria um para cada rota, exemplo: ClientListController e ClientFormController.

Cada um iria lidar com funções para listagem de cliente e formulário respectivamente.

Eles também não são classes que irei criar para lidar com os dados de cada entidade?

Depende de cada abordagem, você pode optar em criar um único model ou definir um para cada rota.

Se você tiver um único model que seria por domínio, seria algo do tipo: Client, nele iria ter todos os dados e funções de cliente para sua aplicação.

Ou por rota ClientList, nele você iria ter apenas dados e funções que a página de listagem precisa.

Fora isso tem outras N maneiras de construir uma arquitetura de aplicação.

Não existe muito certo/errado e sim aquilo que se encaixa e faz sentido para seu cenário/necessidade/contexto.

Se para você faz sentido e se encaixa o MVC, use o MVC, não é errado.

Espero ter ajudado.

Perfeito, ótima explicação, brigadão xará!!!

Magina Matheus, sempre que precisar não deixe de criar suas dúvidas, eh nois kkkkk

Abraços e bons estudos.