Skip to content

Instantly share code, notes, and snippets.

@rafarocha
Last active September 17, 2024 20:17
Show Gist options
  • Save rafarocha/204dd0338ab35ecfb5d685277543760c to your computer and use it in GitHub Desktop.
Save rafarocha/204dd0338ab35ecfb5d685277543760c to your computer and use it in GitHub Desktop.

Avaliação dos Requisitos

  • Design de Classes de Domínio → Ok
  • Separação em Camadas → Ok
  • Transição de Estados → Ok
  • Princípios SOLID → Ok

Avaliação do Projeto

  • Geral
    • Boa iniciativa na automação nos scripts em bash .sh. Parabéns!
    • Faltou indicar no readme como foi feito o design e arquitetura do projeto
    • Corrigir link onde há requisitos de participação na hackaton no readme
    • Boa usabilidade para autenticação do usuário
    • Ao invés de sempre verificar null procure ler sobre Optional
    • Bom projeto, estrutura e design arquitetural. Parabéns!
  • Main
    • A inicialização de dados foi uma boa para melhor experiência e usabilidade
    • Boa estrutura e injeção das camadas do repositorio ao controller e menus
    • O código que verifica --admin poderia ficar estruturado em método ou classe à parte
  • View
    • Evite ter código comentado, exemplo criarCompanion2
    • Textos fixos de mensagens, avisos ou perguntas deslocar para constantes em interfaces ou enums
    • Lógica por switch de menus pode ser melhorada com padrão command + strategy
    • Boa tática para uma única instância do scanner por Menu.entrada
    • Veja que o código das views seriam mais simples sem texto fixo, ifs e switchs cases
    • Código em QuestaoView.mostrarQuestaoFechada ficou misturado. Implementar aleatório a parte
    • Veja que saber se a questao errou ou acertou fica no model e regras no service
    • Para criar questões pode ser usado o padrão Abstract Factory mas isto não compete fazer na view
  • Controller
    • Importante considerar interfaces dos controladores. Parabéns!
    • Imagina que seu controlador agora seja via HTTP. Ainda assim a interface e demais camadas grandes impactos
    • Em ValidadorDeEntradas.validarOpcoes cria um novo scanner
  • Service
    • Vários meetodos vazios ou sem implementações que retornam nulos
    • Um pouco confuso inicialmente a usabilidade de retornar adicionarTema e adicionarExercicio
    • Mas entendi que o status é um código de sucesso da açnao do usuário, mas tudo bem
    • Simplifica o nome dos metodos. Veja que todos em portugues e alguns nao. Exemplo, getList para listar
  • Repository
    • Como melhoria futura usar um Map ao inves de duas listas em RepositorioCompanion para companion e flags
    • Faltou um atualizar visto que ajustes podem ocorrer para melhor experiência do usuário
    • Fez bom uso do generics na interface para diversos repositorios
  • Model
    • Em ZConteudoPOO, os textos poderiam ficar em interfaces ou variáveis estática
    • Isto torna mais fluido a leitura do código e local central para ajustes textuais
    • Imagina que no futuro você queira ter o programa em várias linguagens, como faria?
    • Boa usabilidade para diversos robos em Avatar. Poderia ficar melhor em interface
    • Bom design entre questões abertas e fechadas se beneficiando de princípios solid
    • Poderia ter implementado comparable para ordenação padrão
    • Veja que comportamentos de verificação do user poderia estar na própria Classe
    • Classes de domínio tem apenas get/set. Procure ler sobre modelo anêmico

Avaliação Desafio 01

  • Bacana a evolução das classes de domínio para incluir Multa, Devolução e demais
  • Boa iniciativa em descrever os fluxos por diagrama de classe e sequência
  • Foi próativa ao investir tempo extra com ferramentas e no readme
  • Evite sempre que possivel deixar código comentado no projeto.
  • Implementou controller mas não o chamou no Main
  • Menus e validação de entrada em branco
  • Método pagarMulta poderia retornar PagamentoMulta e não sete objetos como null
  • Boa evolução ao implementar métodos emprestar e devolver. Cabe reuso sobre validação.
  • Não entendi arquivos .txt misturados com classes java
  • Em BibliotecaRepositorioListImpl muito código comentado
  • Boa desenvolvura para implementar novos comportamentos reusáveis em BibliotecaServiceImpl
  • BibliotecaServiceVirtual poderia ter ao menos um método comportamento
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment