developer-challenge icon indicating copy to clipboard operation
developer-challenge copied to clipboard

Pull Request - Desenvolvedor Pleno

Open flipChandler opened this issue 1 year ago • 0 comments

Olá, tudo bem?! Meu nome é Felipe, moro em Cotia/SP, eu curto Java demais e me debrucei aqui no PC pra fazer algumas melhorias no código-fonte do jogo dos Oito. O Chat GPT e o @AllenHichard já haviam feito um trabalho sensacional e eu vim aqui humildemente fazer a minha singela contribuição também.

Melhorias

  • Criei a classe Movement, que implementa a interface Action, desacoplando de Cell;

  • Criei a classe GameStatus (que implementa a interface Status) desacoplando de Board;

  • Criei a classe Click (que implementa o padrão Command) desacoplando de Board;

  • Fiz uma correção ao clicar na célula vazia do jogo, que lançava a exception "NumberFormatException";

  • Usei o padrão Builder para construir o objeto do frame JogoDosOito de uma forma mais elegante no método main, e coloquei a inicialização do jogo também na classe Application;

  • Criei o método of para inicializar os objetos, deixando o construtor com argumentos privado. Aí nem vai ter tanto new, new, new espalhado pelo código (acho muito legal esse estilo de método!!);

  • Criei testes unitários com a library do AssertJ e dei uma ajeitada no pom.xml, centralizando as versões das dependências na tag properties;

  • Apliquei os princípios do SOLID, Clean Code e do DRY nas classes, métodos e variáveis;

  • Adicionei a library JTattoo para deixar a UI da jogo um pouco mais amigável;

  • Adicionei a classe JFrameCustom para personalizar o frame do jogo, por exemplo, ao iniciar a aplicação, o seu frame já está centralizado na tela;

  • Alguns métodos que tinham paradigmas funcionais, eu os reescrevi com os loops do for-each, conforme o @douglashiura mencionou lá no READ.ME, o grande @AllenHichard fez umas elegâncias com "código muito funcional" (pra mim estavam excelentes!);

  • Alguns métodos e testes que não estavam sendo utilizados no jogo, eu tomei a liberdade de deletá-los. Havia um lá que era pra pegar os valores do teclado, por exemplo, e o jogo é pra ser jogado pelo mouse.

Bom, agradeço por ter feito esse desafio, aprendi muito de verdade!

Meu contato é: [email protected] :coffee:

flipChandler avatar Jul 22 '23 18:07 flipChandler