Cześć, nie wiedziałem czy dobry dział wybieram, a zastanawiam się czy ktoś poświęciłby trochę czasu by zrobić dla mnie małe code review. Od niedawna pracuje jako junior a w domu coś tam pisze dodatkowo i staram się jednak zachowywać jakieś dobre praktyki. Cel na początek nie zbyt ambitny - szachy. Póki co silnik gry, obsługujący ruch figur po szachownicy, podłączony pod prosty UI JavyFX (grafiki 50% internet 50% paint tak wiec uwaga xd). W planach zrobienie z tego kompletnej gry, początkowo dalej na desktopie, a potem podział na client-serwer, z początku desktop na socketach, a potem web, czyli zapewne spring.
Dobra, co do kodu - https://gitlab.com/emdzej93/chess-game-core
Szybkie wprowadzenie, od strony GUI - **BoardView **agreguje obiekty Tile, które po kliknięciu wywołują ActionController.executeAction(row, column). Po każdym kliknięciu następuje przerenderowanie ustawienia figur, za wyświetlanie odpowiednich figur odpowiedzialna jest klasa PieceFactory, która na podstawie typu figury zwraca odpowiedni obraz. Wspomniany kontroler jest łącznikiem z warstwą logiki gry, przekazuje stan gry do widoku i decyduje czy dana akcja jest dozwolona z pomocą klasy MoveValidator, klasa ta sprawdza czy ruch danej figury jest dozwolony, czy po drodze do celu figura nie napotka innej figury, czy dany ruch to był atak czy zwykłe przemieszczenie figury. Sama klasa figur czyli Piece i rozszerzające ją klasy są tylko zbiorem reguł na temat ruchów. Klasa Board, agreguje podobnie jak po stronie GUI, obiekty Tile (inny namespace oczywiście). Tym razem te obiekty niosą informację o swojej pozycji, czy są wybrane, czy/jaka figura na nich stoi, itp.
Z grubsza to tyle, mam nadzieje że ktoś znajdzie trochę czasu by zajrzeć do repozytorium i podzielić się uwagami.
edit#
aha, repo zawiera wszystkie potrzebne grafiki, można zaciągnąć i odpalać u siebie bez problemu