Wpis z mikrobloga

#programowanie #java
Czytając wpis @bloodguy postanowiłem spróbować swoich sił i też rozwiązać to zadanie ( student here, nie pracuje w zawodzie ale szukam stażu/juniora ) i chciałbym żebyście się wypowiedzieli na temat mojego rozwiązania, starałem się poprawić to co zarzuciliście autorowi.
github
przykladowe dane
Wołam ludzi którzy się wypowiedzieli ( nie bijcie pls )
@wczoraj @kisi3l @NiebieskaSowa @Trytka @Legol
  • 8
@mediateh7: Nie podoba mi się.

1. Formatowanie kodu
2. Brak pakietów
3. Zmienne instancji z defaultowym dostępem, czemu?
4. Klasa Reader, która robi wszystko
5. Najprostszy scenariusz że użytkownik zapomniał podać ścieżki pliku wywala cały program ze stackiem
6. Streamy są spoko, ale trzeba ich używać z głową żeby kod był czytelny

Ogólnie to strasznie studenckie podejście, takie z cyklu #itgraduate . @Eoghan dał dobry przepis na produkcyjny wannabe kod.
@mediateh7:

Reader.java

Czemu w ogóle ta klasa jest instancjonowalna?

14,15) czemu nie private?

21) zmienić nazwę, aby znikła potrzeba komentowania.
Jako parametr podałbym File, lub fileName, i zrobił to jako statyczną metodę Reader'a.

33) podobnież, static i parametrem lista linii.

35, 37) Nie da się nazwać zmiennych tak, aby nie trzeba było komentować?

47) To chyba jedyny przypadek, kiedy zostawiłbym ten komentarz.

39, 50) przecież to widać, nie trzeba komentować.

Main.java
@hilemz: apropos pakietów to chyba z czystego lenistwa, bo już miałem w tym katalogu coś i po prostu usunąłem i zacząłem pisać.
Co jest nie tak z formatowaniem ? Default dostęp, kalam się moja wina. Właśnie nie wiedziałem za bardzo jak to rozbić bo wydaje mi się, że to w miarę proste metody.
Dzięki za krytykę. Pisałem program jakbym to tylko ja miał go uruchomić ale to chyba z pośpiechu, ponieważ
Co jest nie tak z formatowaniem ?


@mediateh7: Np. to samo, co z tym pytaniem. Po co spacja przed '?'?

Raz dajesz pustą linię przed 'return', raz nie. Raz dajesz pustą linię na końcu pliku, raz nie. Raz pusta linia przed komentarzem, raz nie. Brakuje zupełnie spójności.
@kisi3l: Narobiłem tyle komentarzy, ponieważ w poprzednim wpisie dużo ludzi się czepiało, że ich brak więc starałem się opisywać wszystko. Jeśli te dwie metody zrobię statyczne to mam je wywołać w konstruktorze ?
@mediateh7: Tamta dyskusja o komentarzach nie należy do zbyt wartościowych, aczkolwiek przewinęło się kilka trafnych stwierdzeń. Ogólnie, komentować powinniśmy zadbać, aby uświadomić DLACZEGO coś tak działa, nie natomiast informując JAK działa (bo to powinno dać się odczytać z kodu).

Metody statyczne wołasz poprzez Klasa.metoda(), czyli w Twoim przypadku: Reader.readLinesFrom() wywołasz z klasy Main.java. Nie potrzebujesz w ogóle instancjonować obiektu klasy Reader, wręcz powinieneś to uniemożliwić.