Sprawdzenie czystości kodu :)

0

Cześć! Od jakiegoś czasu się uczę programowania, a właściwie Javy. Znajomy mi doradził, że jak chcę pracować z innymi ludźmi przy projektach to powinienem popracować nad czystością kodu.

Do tego doradził mi zakupić książkę wujka Boba odnośnie czystości kodu. Ale to muszę jeszcze poczekać.

Tu kod: https://github.com/petercrowed/TicTacToe1vs1
https://github.com/petercrowed/TicTacToeVsPC

Wiem, że jest dużo ifów. W sumie próbowałem je wyeliminować pętlą... ale coś nie szło. Wydaje mi się, że problem leży przy Action Listenerze. Dałoby się ten element aplikacji oddzielić? Ja nie znalazłem sposobu, a przyznam, że kod byłby o wiele schludniejszy :)

Wiem, że pewnie to źle wygląda. Ale jeszcze nikomu nie pokazywałem swojego kodu. Aż przyznam, że trochę dziwnie się z tym czuję ;)

1

Jejku, jej!

  1. Nie commituj do repo wszystkiego. W szczególności settingsów czy targeta...
  2. Projekt nie jest mavenowy/gradlowy, co to mamy rok 2003?
  3. A im dalej w las tym ciemniej...
private final int SIZE = 3;

ale jednak zaraz jest

for (int k = 0; k < 3; k++) {

i generalnie wszędzie wymiary hardkodowane na 3. No to ta zmienna po coś jest czy tak dla picu?
A checkForWin zawiera tyle copypaste że sam pan Mirek byłby zazdrosny. Ty sobie robisz jakies jaja że nie wiedziałeś jak usunąć te copypasty? No to ja ci podpowiem. Ustaw teraz rozmiar planszy na 1000x1000, niech graczy będzie 30 i niech 100 symboli w jednej linii wygrywa. Nadal naklepałbyś ten kod tak:

buttons[0][0].getText() == "X" && buttons[1][0].getText() == "X" && buttons[2][0].getText() == "X"
//
buttons[0][0].setBackground(Color.CYAN);
buttons[1][0].setBackground(Color.CYAN);
buttons[2][0].setBackground(Color.CYAN);

czy może przy takich ograniczeniach włączyłoby się myślenie? ;) Gdzie jest ta granica u ciebie, kiedy uznajesz ze może ctrl+c i ctrl+v to zły pomysł? Bo u programisty ta granica powinna być od razu.

Czym jest klasa Magic nie wiem i chyba nie chce.

0

Jest coś takiego jak statyczna analiza kodu. Poczytaj sobie o PMD, Checkstyle, Findbugs. Nie mówię, że wszystkie reguły tych narzędzi są ok (niektóre są naprawdę bez sensu), ale pozwalają nabyć kilka przydatnych nawyków przy programowaniu. W skrócie polega to na tym, że twój kod jest analizowany i dostajesz listę ostrzeżeń, co tutaj możnaby poprawić (np. niepotrzebne zmienne, zbyt złożone metody itp).
W najprostszej opcji mamy pluginy do eclipsa (aczkolwiek nie działają za dobrze).
Najlepiej postawić serwer (nawet lokalnie, na czas weryfikacj kodu), np. jenkins i tam poinstalować pluginy - działa to naprawdę przyzwoicie.
Możesz spróbować sił sam, lub jeśli pracujesz w zespole, to może ktoś inny zna temat lepiej :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1