Aktywne Wpisy
Haerbin +138
Mam problem z moim chłopakiem. Mianowicie bawi się w jakiegoś szeryfa dzielnicy. Codziennie wieczorem mówi, że idzie na obchód. Chodzi pół godziny po osiedlu i sprawdza jak ludzie zaparkowali auta. Jak coś mu się nie podoba to dzwoni na straż miejską. Dzieje się tak dzień w dzień dosłownie. Nawet w naszą rocznicę nie odpuścił i jak wróciliśmy do domu z kolacji to on poszedł na tej swój obchód. Dodatkowo jeszcze jego ojciec
miku555 +228
Stąd pytanie, będę wdzięczny za wszelkie uwagi dotyczące stylu pisania.
https://pastebin.pl/view/2f0a9dfd
#naukaprogramowania #java
Edit:
W pseudokodzie:
result = true
if(!isValidDay)
result = false
else if (!isValidCośTam)
result = false
Masz tam kilka fragmentów jak liczenie sumy kontrolnej i różnego rodzaju walidacje. Warto to podzielić na metody których nazwa dokładnie mówi co sprawdzamy. Wtedy ktoś analizując główną metodę widzi tylko proste nazwy metod typu HasCorrectCheckSum, HasCorrectLength, HasCorrectDate a nie od razu szczegóły implementacji.
Poszczególne metody będą łatwiejsze do analizowania i krótsze
if (isValidDay && isValidCośTam &&....)
Zresztą zamiast if może już nawet być return (IsValidDay && ... &&).
Tutaj był by 4 metody chyba: IsValidLength, IsAllDigits, IsValidDate, IsCorrectCheckSum więc do przeżycia.
Samo unikanie negowania warunków jest sugerowane w różnych regułach czystego kodu.
https://moderatemisbehaviour.github.io/clean-code-smells-and-heuristics/general/g29-avoid-negative-conditionals.html
@szwe: Tak jak napisał @kinemator, jeśli jeden z warunków zostanie spełnionych nie sprawdzamy dalej, pesel jest niepoprawny.
@Zarix: kwestia gustu, ale doświadczenie na różnym kodzie, pokazuje że czytelniej jest jak wychodzisz z metody jak tylko nie ma sensu jej przetwarzać. Wszystko ładnie się wyrównuje do lewej, nie ma głębokich wcięć w kodzie. Łatwiej ogarnąć a przede wszystkim nic ci (z powodu błędu) nie zmieni wyniku. Mnie też uczono, żeby było