Design de Classes de Domínio
→ OkSeparação em Camadas
→ Parcial pois faltou melhor estruturarTransição de Estados
→ OkPrincípios SOLID
→ Ok
- Geral
- Sem informações no readme sobre o projeto, o que faz, como fez e como executar
- Simplificar e deixar mais coeso chamada ao final do main em
PatientLog.generateLog
- Fez bom uso do generics em IStatusProvider mas com método static
- Lembrou de tratar exceções. Utilize tratamentos de exceções próprias em runtime
- Faltou estruturar em camadas service + repository
- Core
- Evite muitas chamadas como
patients.get(<numero>)
crie a classe e adicione após - LoginSystem vazio e evite classes com código comentado
- Evite muitas chamadas como
- View
- Lógica por switch de menus pode ser melhorada com padrão command + strategy
- Ficou complexa a lógica com
for(Object s : patient.getPatientInfo())
- Pois além do loop tem condições e dentro há ainda vários switch case
- Uma evolução para menos linhas com
println
é criar arquivo txt template - Com template você aplica parâmetros para sobrepor igualmente faz em relatórios
- RecordView ficou bem estrutura e seria um ótimo caso de uso
- veja que as views servem para listar ou exibir ações do usuário como uma tela
- Manipulation
- Classes com métodos estáticos e várias listas das entidades de domínio
- Deveria estar em camada de repositório com interfaces e sem static
- Entity
- Veja que comportamentos de verificação poderiam estar na própria Classe
- Procure ler sobre modelo anêmico
- Bom design com Entity que implementa IRegister
- Faltou implementar equals e comparable que seria útil na view
- Entendi que gostaria de mais projetos mas precisei equilibrar o ritmo da turma
- Faltou caprichar no readme ou incluir mais informações sobre as suas mudanças
- Implementações totalmente vazia dos services e sem repository
- Design das classes totalmente em inglês mas faltou aplicar comportamentos
- Infelizmente não tive como avaliar completamente o desafio proposto