Prośba o ocenę kodu aplikacji

Prośba o ocenę kodu aplikacji
ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Witam. Co prawda jakiś czas temu prosiłem tutaj o ocenę tego samego programu, jednak było to bardzo dawno i napisałem go właściwie całkowicie od nowa. Trochę się od tamtej pory nauczyłem, więc wydaje mi się, że kod nie jest już tak tragiczny jak wtedy. Niemniej jednak na pewno nie jest idealny, dlatego proszę osoby bardziej doświadczone ode mnie o jego ocenę ;)
Jako, że prowadzę bloga i opisywałem na nim już ten projekt, żeby się nie powtarzać zostawię tylko linka: http://csharp-dev.pl/2016/11/18/cleaner-net-krotka-prezentacja/

GitHub: https://github.com/lukaszpl/Cleaner.NET

Pozdrawiam!

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
2

Unikaj takich długich metod jak SettingsLoader.SaveSettings().

Mam na myśli to że powinieneś ją skrócić.

ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 99
0

Dzięki za odpowiedź ;)

Fakt, można skrócić metody w tej klasie. Poprawię to.
Co do reszty, obyło się bez jakiś większych błędów?

Sarrus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2512
2

Te nazwy nie są za długie. Zauważ tylko, że w SettingsLoader.SaveSettings() dwa razy pojawia się słowo Settings. Poza tym w Loader masz Save co do siebie średnio pasuje. Moim zdaniem mógłbyś klasę nazwać po prostu Settings i nazwać metody Load i Save

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
3

Ten kod się powtarza. Nie dość że w if oraz else jest to samo, to jeszcze w trzech miejscach:

Kopiuj
if (DoClean)
                return Languages.Lang.Recentdoc_CheckBox + ": " + Size + " MB" + "\n\n";
            else
                return Languages.Lang.Recentdoc_CheckBox + ": " + Size + " MB" + "\n\n";

Jak masz taki sam kod to nie kopiuj-wklej go w dwóch miejscach tylko wydziel do metody, i ją wywołaj.

Poza tym to:

Kopiuj
if (a) {
    return b;
} else {
    return c;
}

zawsze piszę tak

Kopiuj
if (a) {
    return b;
}
return c;
Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
1

Linijka 44 w klasie XmlReader.cs.

Kopiuj
XmlNodeList Shops = XmlDoc.SelectNodes("//userSettings//Cleaner.NET.Properties.AppSettings//setting[@name = '" + Name + "']//value");

To jakby "dwie rzeczy". Dwie odpowiedzialności, powinieneś z tego zrobić coś takiego:

Kopiuj
XmlNodeList Shops = XmlDoc.SelectNodes(GetSettingsFilename(Name));

Tzn zrobić funkcję GetSettingsFilename() żeby ona zwracała ten string.

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
0

To co jeszcze to CleanClass.cs linijki 32-40, to co jest w środku ifa, całe, powinno być wydzielone do innej funkcji. Linijka 43, to co jest w returnie też do innej funkcji.

Te dziwne komentarze chrome/firefox/opera w klasie CleanClass wyglądają jakby jakby można z nich było zrobić interfejs i 3 klasy polimorficzne (ale może to zrób na końcu). Na razie możesz po prostu z nich zrobić 3 klasy CleanChrome, CleanOpera i CleanFirefox i tyle.

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.