Planejamento Lógico do App — Um Olhar Mais Profundo na Abordagem de Tim Corey
Em sua série C# App Start To Finish, Tim Corey explica que construir um aplicativo não é apenas escrever código. O verdadeiro desafio está em planejar a lógica do aplicativo — como as diferentes partes do aplicativo interagirão, comunicarão e moverão dados entre telas e componentes. Na Lição 05 sobre Planejamento Lógico, Tim foca no planejamento lógico, enfatizando que esta é a fase em que você decide como o aplicativo se comportará como um todo.
Ele nos lembra que até este ponto, o curso já cobriu requisitos de escopo, construção de estrutura geral, design do back-end de dados e desenvolvimento da interface do usuário. Agora, diz Tim, o próximo passo é conectar tudo através da lógica.
Tim esclarece que essa aula não mergulhará no código ainda. Em vez disso, ele quer cobrir as ideias globais, o quadro geral e a lógica geral por trás do aplicativo. Ele incentiva a escrita de notas no papel e o desenho de setas para mapear como cada formulário e botão devem se comportar, o que é semelhante à forma como os processos de negócios são mapeados em ambientes de desenvolvimento profissional. Este planejamento ajuda a lógica do aplicativo a se tornar clara antes de avançar para a codificação.
Por que o planejamento lógico é importante
Tim começa afirmando que conectar os formulários é a parte principal da lógica do aplicativo. Uma vez que os formulários estejam corretamente conectados, as tarefas restantes geralmente são menores. Ele explica que o processo de planejamento lógico ajuda a entender a funcionalidade, os processos e os controles que o aplicativo deve suportar.
Tim diz que, se estivesse fazendo isso no papel, escreveria o que cada componente deve fazer e desenharia setas entre eles. Mesmo que a aula esteja trabalhando na tela, ele planeja percorrer cada formulário e explicar a lógica por trás de cada peça.
Lógica do Formulário Criar Torneio
Tim começa com o formulário Criar Torneio, que é um dos formulários mais simples. Ele explica a lógica por trás de cada botão e como eles devem funcionar juntos.
Botão Criar Nova Equipe
Tim explica que o botão Criar Nova Equipe abre o formulário Criar Equipe. Depois que uma equipe é criada, o novo formulário é fechado e os dados da equipe criada são retornados ao formulário Criar Torneio. A equipe deve aparecer na caixa de lista de equipes/jogadores, e isso é feito criando um método que pode ser chamado a partir do formulário Criar Equipe.
Tim também introduce o conceito de usar interfaces para essa comunicação, explicando que interfaces permitem que formulários interajam sem saber diretamente sobre os outros. Este é um exemplo clássico de como a lógica de negócios e a arquitetura de software trabalham juntas para manter a qualidade, integridade e interação limpa entre os componentes.
Botão Adicionar Equipe
Tim explica que o botão Adicionar Equipe é direto. Ele verifica qual item está selecionado na lista suspensa, adiciona aquela equipe à lista de torneios, remove-a da lista suspensa e, em seguida, atualiza ambas as listas. Essa lógica garante que a seleção do usuário seja refletida corretamente na interface do usuário e nos dados subjacentes.
Botão Criar Prêmio
Tim explica que o botão Criar Prêmio se comporta de maneira semelhante ao botão Criar Nova Equipe. Ele abre o formulário Criar Prêmio, espera o prêmio ser criado e então adiciona esse prêmio à caixa de lista de prêmios. A lógica é a mesma, mas a classe e o tipo de dados são diferentes.
Botões Excluir Selecionados
Tim explica que os botões de exclusão removem o item selecionado da caixa de lista. No caso de equipes, a lógica também retorna a equipe excluída para a lista suspensa, garantindo que o usuário possa adicioná-la novamente mais tarde. Este tipo de atualização em tempo real melhora a experiência do usuário e ajuda a manter dados corretos em toda a interface do usuário.
Botão Criar Torneio
Tim explica que este é o grande botão porque aciona a maior parte da lógica. Quando clicado, ele deve validar todas as informações:
-
O nome do torneio não pode estar vazio
-
A taxa de inscrição não pode ser negativa
- Pelo menos duas equipes devem existir
Após a validação, Tim explica o próximo passo importante: criar o cronograma. A lógica do cronograma do torneio determina quantas equipes devem estar no torneio e quantos "byes" são necessários. Tim faz referência a um documento acompanhante onde ele escreveu a fórmula para este cálculo. Por exemplo, se o torneio tiver 10 equipes, o torneio deve começar com 16 equipes, o que significa que 6 "byes" são necessários na primeira rodada.
Tim também observa que a lógica precisa randomizar a ordem da primeira rodada. Uma vez que tudo isso esteja completo, o formulário é concluído e o aplicativo pode seguir em frente.
Lógica do Formulário Criar Equipe
Tim segue para o formulário Criar Equipe e explica a lógica por trás de seus botões.
Botão Adicionar Membro
Tim diz que este botão adiciona um membro existente de uma lista suspensa à caixa de lista da equipe. Em seguida, remove esse membro da lista suspensa e atualiza ambas as listas. Tim destaca que esta é uma lógica semelhante ao botão Adicionar Equipe.
Botão Criar Membro
Tim explica que o botão Criar Membro pega os quatro campos de entrada, cria um novo membro da equipe, adiciona-o à caixa de lista e limpa os campos. Este é um exemplo típico de tarefas comuns na lógica de aplicação, onde a entrada do usuário deve ser processada e refletida na UI.
Botão Criar Equipe
Tim diz que o botão Criar Equipe deve validar a equipe e então enviar a equipe criada de volta para o chamador. Ele observa que o formulário está faltando um botão para deletar jogador, o qual deve ser adicionado para combinar com os outros formulários e fornecer uma experiência do usuário consistente. Tim explica que o comportamento consistente da UI é importante para a familiaridade e conforto do usuário.
Lógica do Formulário Criar Prêmio
Tim descreve o formulário Criar Prêmio como mais simples. Ele tem quatro caixas de texto e um botão.
Quando o botão Criar Prêmio é clicado, ele:
-
Valida as informações do prêmio
-
Envia os dados de volta para o formulário chamador
- Fecha o formulário
Tim explica que este formulário é essencialmente o mesmo que Criar Equipe, mas com menos componentes.
Lógica do Painel do Torneio
Tim explica o formulário Painel do Torneio como simples, mas essencial.
Ele lista torneios existentes. O botão Carregar Torneio abre o Visualizador de Torneio para o torneio selecionado, e o botão Criar Torneio abre o formulário Criar Torneio.
Tim observa que quando um torneio é criado, ele deve ser adicionado à lista suspensa, para que o usuário possa carregá-lo imediatamente. Esta lógica é um exemplo básico de acesso a dados e atualização em tempo real dentro de um aplicativo.
Lógica do Visualizador de Torneio
Tim descreve o Visualizador de Torneio como o formulário mais complexo porque contém a maior parte da lógica.
Nome do Torneio
Tim explica que o nome do torneio é atualizado quando o formulário é carregado. O formulário recebe um objeto de torneio e exibe o nome.
Lista Suspensa de Rodadas
Tim explica que esta lista suspensa é calculada, não carregada de um banco de dados. Ela examina a lista de rodadas e determina quantas existem. Se um torneio tiver quatro rodadas, a lista suspensa deve exibir Rodada 1 até Rodada 4.
Caixa de Seleção Apenas Jogos Não Jogados
Tim diz que se a caixa de seleção estiver marcada (padrão), a lista de jogos é filtrada para mostrar apenas jogos não jogados. Se desmarcada, todos os jogos aparecem.
Seção de Pontuação de Jogos
Tim explica que selecionar um jogo atualiza a seção à direita com nomes das equipes e pontuações. O botão Pontuar permite ao usuário atualizar pontuações e finalizar o jogo.
Acionando a Próxima Rodada
Tim explica que quando o último jogo não jogado em uma rodada é pontuado, a próxima rodada deve começar. Se for o jogo final do campeonato, o torneio termina e os prêmios são atribuídos. Tim também observa que o sistema envia emails aos participantes quando eles estão programados para jogar e quando os resultados estão disponíveis.
Regras de Edição de Pontuação
Tim pergunta se as pontuações podem ser atualizadas depois de serem definidas. Ele conclui que sim, mas apenas enquanto a rodada atual ainda estiver ativa. Se as pontuações forem alteradas após o início da próxima rodada, isso pode causar grandes problemas, pois as equipes podem jogar contra adversários errados.
Portanto, Tim diz que o botão Pontuar precisa de lógica para garantir que a pontuação só possa ser alterada na rodada atual.
Qual o próximo passo?
Tim reconhece que alguma lógica ainda precisa ser planejada, como:
-
Acesso e armazenamento de dados
-
Manipulação de diferentes fontes de dados
-
Lógica de email
- Acionamento de jogos
Ele diz que estas são melhores planejadas dentro do código, então a equipe irá abordá-las quando começar a codificação. Este é um exemplo de integridade de negócios no desenvolvimento de software — não excessivamente planejar, mas construir e adaptar enquanto você implementa.
Conclusão: Planejamento Antes da Codificação
Tim conclui seu vídeo afirmando que a fase de planejamento está completa:
-
Design dos dados é finalizado
-
Layout da UI está desenhado
- Lógica por trás de cada formulário está planejada
O próximo passo é traduzir isto em código. Na próxima aula, Tim irá criar a biblioteca de classes e começar a implementar o design dos dados na aplicação real.
