Krytyka kodu początkującego a odpowiedź autora

Odpowiedz Nowy wątek
2019-08-08 14:12
0

Hej, na jednej z grup fb'owych ktoś poprosił o ocenę projektów javowych na gicie (nie podam linka, nie wiem czy autor by sobie tego tutaj życzył).
W skrócie:

  • 4 projekty (każdy to java fx)
  • 3 projekty 5 klas, 1 projekt 9 klas
  • pod każdym widnieje info, że jest w trakcie kodowania, więc dlatego tak mało funkcjonalności
  • po kilkadziesiąt linii w plikach, tylko w jednym projekcie użyta baza sql (jakość masakra), w reszcie baza jako plik txt/xml

W przerwie od kodowania, w której spędzam czas na yt/fb/innych głupotach postanowiłem zajrzeć w kod na kilka minut i coś napisać.

Moje komentarze:

Szczerze to nic tam nie masz. Napisałeś "mam za to kilka własnych projektów hobbystycznych" - gdzie?
Przecież pod każdym widnieje "under deployment" czyli zaden nie jest skończony (nie jest nawet na przyzwoitym poziomie co do wielkości).
Każdy z nich ma max 10 klas javowych (połowa to settery i gettery).
Brak jakiejkolwiek bardziej skomplikowanej logiki.

  1. Brak loggerów - nie używaj sys outów
  2. Zapoznaj się z mavenem/gradlem do budowania projektu
  3. Podepnij baze danych do apki - plik txt jako baza to szczyt twoich możliwości?
  4. Wywal projekt ToDoList - robią to praktycznie wszyscy na starcie, a Ty chcesz się przecież czymś wyróżnić.

Zapewne znalazło by się więcej rzeczy ale to tak na szybko.

Reasumując:

  • na juniora zbyt wielkich szans na obecnym rynku raczej nie masz
  • za małe projekty, zrób jeden większy, dodaj jakąś logikę bardziej skomplikowaną niż wrzucanie / odczytywanie danych z bazy.

Bym zapomniał, z samą JavaFX daleko nie zajdziesz.

Ale nie poddawaj się :)

oraz

Tak widziałem, że jeden projekt ma bazę sqlową, ale nad formą zapytań mógłbyś popracować.

Txt czy xml, nie ma znaczenia. Używaj baz danych sql/nosql.

aaa: 5 klas javowych
bbb: 2 + 1 + 2 (2 ostatnie to settery i gettery)
ccc: 5 kls javowych
ddd: 9 klas

(nazwy projektów ukryte)

Z tą 10 to przesadziłem, jak większość to 5.

Chciałeś krytykę to ją dostałeś, a Ty się obrażasz.

Co miałem CI napisać, że jest idealnie i już jutro masz iść na rozmowę na juniora?
Zderzył byś się ze ścianą.
Kolejna sprawa, jak już masz same apki desktopowe, do których linków nie stworzysz, dodaj jakieś screeny, opis. Pokaż co to robi. Nikt nie będzie pobierać kodu i go odpalać.

oraz

To będzie mój ostatni komentarz, bo widzę, że nic do Ciebie nie dociera.

To, że poświęciłem kilka minut na kod obcej mi osoby to jest brak szacunku? Skąd taki wniosek w ogóle? Bo śmiałem napisać, że praktycznie nic nie masz w tych projektach?
Przyjmij to na klatę i zrób jeden duży porządny projekt, jeśli chcesz dostać się na juniora.

Kolega, dał inne wskazówki, ja inne.
Mam Ci pisać jak zianstalować mavena i jak go używać?
Co więcej dodać o nieużywaniu sys outów tylko loggerów?
Info o bazach - nic więcej tutaj nie trzeba.
Lepiej jeden duży projekt, niż 10 projektów na 5 klas - to też podtrzymuję.

No ale tak, lepiej się obrazić, bo ktoś nie powiedział, że projekt jest perfekcyjny.

Zmień podejście, pozdrawiam.

W odpowiedzi na to dostałem komentarz autora, mówiący, że nie mam do niego szacunku, ze się na nim wyżywam bo jest młodszy (stażem), że mam problem z umiejętnościami miękkimi. Że jak mogłem poświęcić tylko 3 minuty na analizę (toż to brak szacunku!!!).

Jak uważacie, czy początkujący programista ma rację?
Czy moje komentarze można uznać za atak / wyżywanie?

edytowany 2x, ostatnio: kixe52, 2019-08-08 14:14

Pozostało 580 znaków

2019-08-11 17:33
9

@cerrato:

Nieraz na 4P padają znacznie mocniejsze słowa.

Dokładnie.

W skali od 0 do @Shalom OP by dostał max 0.5Shaloma.

edytowany 6x, ostatnio: WeiXiao, 2019-08-11 20:12
Shalom jako jednostka zjebki. Dobre :D - cerrato 2019-08-11 20:11
Ja chcę dać drugą łapkę! Dwie mam przecież! - PerlMonk 2019-08-11 20:33

Pozostało 580 znaków

2019-08-11 19:17
5

Abstrahując od tego, że ten kolega ma problemy z przyjmowaniem krytyki co być może jest prawdą, ale nie widzimy jego odpowiedzi więc tego nie wiemy to samo code review pozostawia wiele do życzenia.

Nic tak nie denerwuje w code review jak zwracanie uwagę na nic nie znaczące szczegóły jednocześnie ignorując naprawdę poważne błędy. Kiedy robisz code review powinieneś oszacować poziom osoby, której kod recenzujesz i dopasować do niej język. Np. ja robiąc komuś code review po raz 10 nie będę już pisał o książce "Czysty kod" bo pisałem to już 9 razy, natomiast recenzując komuś kod po raz pierwszy na pewno o tym wspomnę.

Szczerze to nic tam nie masz. Napisałeś "mam za to kilka własnych projektów hobbystycznych" - gdzie?

No to albo ma 10 klas albo nic tam nie ma. Sam sobie zaprzeczasz. Nieraz miałem przyjemność mieć przeprowadzone code review mojego kodu na kilkadziesiąt linijek którego treść zapełniła by kilka stron tekstu A4 lub godzinę dyskusji. Najdoskonalszy kod to taki, który nic nie robi i ma 0 linijek. Taki kod jest doskonały, nie można już go poprawić bo spełnia już wszystkie wymagania biznesowe. Tak więc ilość klas i linijek nie jest żadnym wyznacznikiem tego czy kod jest dobry czy nie.

Przecież pod każdym widnieje "under deployment" czyli zaden nie jest skończony (nie jest nawet na przyzwoitym poziomie co do wielkości).

Cytując klasyka, każdy kod dłuższy niż 10 linijek będzie musiał być utrzymywany. W IT nie istnieje coś takiego jak skończony projekt. Każdy projekt się deaktualizuje czy to przez to, że pojawia się nowa wiedza na temat rekomendowanych rozwiązań czy też przez to, że zależności się deaktualizują.

Podepnij baze danych do apki - plik txt jako baza to szczyt twoich możliwości?

Czy naprawdę pliki txt/xml są największym problemem tego kodu? Czy projekt ma się skupiać na podpięciu jak największej liczby zależności? Powinniśmy dążyć do zmniejszania ilości zależności, a nie ich zwiększania. Plikowa baza danych też ma swoje zalety i warto je znać. Sam w kilku projektach często używam bazy danych na plikach z różnych powodów, np. mam zbyt wiele danych lub też uproszczenie instalacji projektu.

Każdy z nich ma max 10 klas javowych (połowa to settery i gettery).
Brak jakiejkolwiek bardziej skomplikowanej logiki.
na juniora zbyt wielkich szans na obecnym rynku raczej nie masz
za małe projekty, zrób jeden większy, dodaj jakąś logikę bardziej skomplikowaną niż wrzucanie / odczytywanie danych z bazy.
Bym zapomniał, z samą JavaFX daleko nie zajdziesz.

Banały. Nic nie wprowadzają do dyskusji.

Brak loggerów - nie używaj sys outów
Zapoznaj się z mavenem/gradlem do budowania projektu

W końcu jakieś sensowne argumenty, ale przydałoby się myśl rozwinąć, podać literaturę i wytłumaczyć dlaczego to jest dobre oraz być może podrzucić najprostsze projekty z Githuba, które skupiają się na wytłumaczeniu dokładnie tych punktów. Miej na uwadze poziom na którym jest ten kolega. Prawdopodobnie nie ma pojęcia o tym jak wiele mu jeszcze brakuje i widząc, że ma do przeczytania 10 książek może nie przeczytać żadnej. Zaproponuj mu te najprostsze.

Wywal projekt ToDoList - robią to praktycznie wszyscy na starcie, a Ty chcesz się przecież czymś wyróżnić.

I co z tego, że wszyscy to robią. Niektórzy robią raz w tygodniu/miesiącu katę i jeżeli dadzą komuś do ocenienia wynik katy to powiesz im to samo? ToDoList to jest typowy projekt prezentujący podstawowe funkcjonalności danej technologii, równie dobrze może służyć właśnie jako ćwiczenie typu kata.

Zapewne znalazło by się więcej rzeczy ale to tak na szybko.

Wiem, a nie powiem.

Ale nie poddawaj się :)

Emotka bardzo adekwatna do powagi sytuacji. Wcale tym nie próbujesz tym podkreślić, że nad nim górujesz :) Jeszcze podkreśliłeś AŻ 3 MINUTY SWOJEGO ZAJEBIŚCIE WAŻNEGO CZASU na analizę jego kodu. Ciekawy jestem teraz co twoje dzieci będą jeść skoro on ci nie zapłacił za TE 3 MINUTY!!!

Jak widzisz, na analizę twojego postu poświęciłem trochę więcej niż 3 minuty i to jeszcze linijka po linijce Najprościej jest napisać komuś, że jego kod jest słaby. Do tego nie potrzeba żadnych umiejętności. Ale, żeby powiedzieć już coś co nie jest oczywiste, wskazać mu co powinien poprawić i uzasadnić dlaczego te poprawki mają sens to trzeba jednak już wykazać się jakąś wiedzą.

edytowany 1x, ostatnio: twoj_stary_pijany, 2019-08-11 19:22

Pozostało 580 znaków

2019-08-11 19:49
0

@twoj_stary_pijany:

  1. Nie wstawiłem linka/screenow/githuba bo nie pytałem kolesia o pozwolenie, a jakoś mi na tym nie zależało. Swoje wypowiedzi skopiowałem 1:1. (jego ataki streściłem w poprzednich postach/komentarzach)
  2. Info z ilością projektów i liniami kodu, służyło do zobrazowania wam, na jakim poziomie były te projekty. Co do reszty się zgadzam, każdą linijkę można w jakiś sposób skomentować.
  3. Co do tych nieskończonych projektów i "under deployment". Jaki jest sens zaczynania 3 kolejnych projektów gdzie ten pierwszy nie został "skończony"? Jasne, każdą aplikację można rozwijać i rozwijać, ale jeśli sam autor piszę, że to bardzo wczesne stadium, posiadające 2 funkcjonalności, a ma zamiar dodać kolejnych 12 to gdzie logika w rozpoczynaniu kolejnego projektu od 0, który będzie kalką tych 2 gotowych funkcjonalności?
  4. Ok umie korzystać z bazy w wersji plikowej, tylko po co robić to w każdym projekcie? (ok w 3, w jednym miał sql'ową)? I ośmielę się założyć, że Twoje stosowanie bazy plikowej miało inny zamiar niż jego. Moje słowa mówiące o podpięciu bazy innej niż plikowa miały go "skłonić" do poczytania o innym rodzaju bazy.
  5. "Banały. Nic nie wprowadzają do dyskusji." - Temat był na grupie 12h i nie miał żadnej odpowiedzi, moja była pierwsza. Jeśli nikt nie odważył się skomentować, to lepsze takie banały/ogólniki niż żadne. Jeszcze by autor stwierdził, że kod jest tak idealny, że nikt nie ma nic do dodania :)
  6. Emotka jak emotka. Emotka z uśmiechem, a nie emotka przedstawiająca g**no. Nie we wszystkim musi być ironia. Serio życzyłem mu powodzenia :) Lepiej jakbym napisał "Powodzenia!!!!!!!!!!!!!!!!!!!!!!!"? Serio nie masz się czego czepiać?
  7. 3 minuty to były jego słowa. To był atak jego w moją stronę. Moje słowa to były: "ale to tak na szybko". To na szybko to może być również 15-20 minut a nie 3, które z góry założył autor.

Mimo to dziękuję za cenne uwagi Twoje jak i innych, którzy się wypowiedzieli w tym temacie.

ps odnalazłem jego repo w historii, nawet skorzystał z uwagi o opisie projektu i dodał screeny i kilka zdań co to robi.

edytowany 1x, ostatnio: kixe52, 2019-08-11 19:51

Pozostało 580 znaków

2019-08-11 20:38
0

Podkreśliłem, że nie czytałem jego odpowiedzi dlatego, żeby było wiadome, że nie będę o nim pisał bo nie mam na podstawie czego wnioskować. Skupmy się na Tobie i Twoich wypowiedziach.

Nie zrozumiałeś meritum mojej odpowiedzi. W każdym kodzie jest coś do poprawy i każdy kod ma w sobie coś fajnego. To, że jest tam mało kodu nic nie znaczy bo o każdym kodzie można coś powiedzieć niezależnie czy ma 10 linijek czy milion linijek. Kod ma tylko dwie funkcjonalności czy może aż dwie funkcjonalności? Skoro ma aż dwie funkcjonalności to chyba jest już coś do oceny. Dlaczego po prostu nie zrecenzujesz mu jednego projektu, ale dobrze?

Co do bazy i JavyFX to skąd gość może wiedzieć jaka baza danych będzie dobra do takiego projektu skoro jak sam zauważyłeś, nie jest nawet na poziomie juniora. Może nie rozumieć plusów wynikających z bazy sql i może nie wiedzieć o lepszych technologiach niż JavaFX. Warto mu wspomnieć o alternatywach, ale skoro wybrał te technologie to może miał powód. Jednym z tych powodów mogło być to, że były proste i chciał je opanować na początek.

Mówiąc "banały" mam na myśli, że to co mu napisałeś nie miało wartości merytorycznej. Rzeczy które tam wymieniłem z tych, które mu napisałeś to były tylko i wyłącznie subiektywne opisy. Każdy projekt można nazwać trywialnym i nietrywialnym. Każdy projekt możesz nazwać małym i dużym. O każdej technologii możesz napisać, że daleko z nią nie zajedziesz. Dla niego te zdania nie zawierają treści bo ma zbyt mało wiedzy, żeby zrozumieć kontekst w którym są wypowiadane.

Pozostało 580 znaków

2019-08-11 20:52
0
  1. "Co do reszty się zgadzam, każdą linijkę można w jakiś sposób skomentować."
  2. Co do dłuższej i treściwej recenzji jednego projektu, nie uczynię tego bo albo usunął temat na grupie, albo mnie zablokował. (nie pisałem nic więcej poza tym co tutaj wkleiłem).
  3. Może i według mnie nie jest nawet na poziomie juniora. Ale po mojej uwadze o mavenie skomentował to, że "jak w ogóle możesz myśleć, że nie wiem co to maven" - no skoro go nie użył (dlaczego?) to skąd mam wiedzieć, ze umie go używać? Skoro jest tak dobry (jak sam twierdzi) to powinien wiedzieć, że bez toola do budowania projektu / z samą java fx / bez "nowości" z javy8 / braku ogarniętego projektu z bazą sql/nosql daleko nie zajdzie.
  4. Co do braku większej wartości merytorycznej - tak, do tego już doszliśmy po kilku poprzednich wypowiedziach.
    Ale tak jak powiedziałem, nikt nawet się nie udzielił w temacie (nie wiem jak z wiadomościami prywatnymi), więc chciałem chociaż wspomnieć o ogólnikach typu: budowanie projektu / loggery / sql / skupienie się na jednym, a nie tworzenie 4 projektów, gdzie wstęp to to samo, a dalej nic nie ma.
    Jaki jest problem we wpisaniu słów kluczowych maven / logger w google i poczytanie co to / po co/ jak używać?
Jak nie slyszales o buildtoolach to prawdopodobnie nigdy maven nie wygooglujesz - stivens 2019-08-11 21:00
No to jeśli autor prosi o ocenę / porady i pada słowo kluczowe, którego nie zna, to może warto to wygooglować? I tak jak powiedziałem, stwierdził, że wie co to maven. - kixe52 2019-08-11 21:02
Faktycznie. Gdzies stracilem sens wypowiedzi (ktory byl doslownie chwile wczesniej) po prostu bo zwykle jak czegos nie znam a domyslam sie ze moze istniec to googluje np logger. Mea culpa - stivens 2019-08-11 21:05
Jeżeli ktoś nie używa narzędzi do budowania projektów i na zwrócenie uwagi o ich używanie odpowiada: "jak w ogóle możesz myśleć, że nie wiem co to maven" to już wiadomo, że gdzieś ma spore braki czy to z wiedzy technicznej czy to z komunikacji. Ja staram się ucinać takie dyskusje bo do niczego nie prowadzą. Skoro gość wie lepiej to po co pyta. Możliwe, że reszta użytkowników już zna tego gościa i dlatego mu nie odpowiada. - twoj_stary_pijany 2019-08-11 21:08
Dlatego po moich 3 odpowiedziach uciąłem temat. Zignorowałem nawet atak na brak umiejętności miękkich po mojej stronie i to, że współczuje moim współpracownikom - ja ich chociaż mam hehe. :) - kixe52 2019-08-11 21:14
Mimo to fajnie było przeczytać wszystkie wasze odpowiedzi. Następnym razem postaram się aby poziom mojego code review był wyższy. Dzięki! - kixe52 2019-08-11 21:15

Pozostało 580 znaków

2019-08-14 10:52
1
kixe52 napisał(a):
  1. "Banały. Nic nie wprowadzają do dyskusji." - Temat był na grupie 12h i nie miał żadnej odpowiedzi, moja była pierwsza.

Swoją drogą to jest ciekawe, jak internet przyśpieszył. Technicznie i społecznie. Kiedyś kilka dni się czekało na odpowiedź, a teraz 12h to już brak zainteresowania. Ba, czasem ludzie po 2 godzinach potrafią napisać "czyli nikt mi nie odpowie?" (co już robi się groteskowe).

No ale teraz też jest większy śmietnik informacyjny, i faktycznie jak ci ktoś nie odpowie za chwilę, to temat może zniknąć zaraz pod innymi.


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
przez te kilka godzin powstaje tyle innych treści, że mogą już "nie odkopać" tego starego. - danek 2019-08-14 11:08
dokopią się :) ja się dokopałem - no_solution_found 2019-08-14 11:16

Pozostało 580 znaków

2019-08-14 22:57
0

W moim odczuciu Twoje komentarze są prawdziwe, szczere, ale jednak momentami agresywne i aroganckie. Zresztą @fasadin rozłożył Ci to pięknie na czynniki pierwsze.

edytowany 1x, ostatnio: nalik, 2019-08-14 23:00

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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