Sprawdzenie czystości kodu :)

Sprawdzenie czystości kodu :)
nowakowskipan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
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ę ;)

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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...
Kopiuj
private final int SIZE = 3;

ale jednak zaraz jest

Kopiuj
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:

Kopiuj
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.

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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 :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.