Prośba o code review

Odpowiedz Nowy wątek
2019-02-12 13:58

Rejestracja: 1 rok temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Wrocław

0

Witam

Chciałbym prosić o ocenę moich projektów. Będę naprawdę wdzięczny za każdą radę, wskazówkę oraz inne informacje, które zmienią mój świat na lepsze.

Github: https://github.com/mmazur658
Strona: https://marcinmazur-portfolio.pl/

Z góry dziękuję za poświęcony czas.
Pozdrawiam

Pokaż pozostałe 2 komentarze
Założenie było takie, aby nie udostępniać swoich danych swobodnie w internecie. - Marcin Mazur 2019-02-12 15:55
Nie nazywasz się tak jak Twój login tutaj? - axelbest 2019-02-12 15:57
A scenariusz, że osoba rekrutująca wpadnie na moja stronę "z własnej inicjatywny" uważam za skrajnie nieprawdopodobny. Jak aplikuję to podaję link razem z kodem. Dodatkowo uważam, że jeżeli ktoś w swojej pracy stwierdza, że mu się nie chce i odpuszcza, to nie wykonuje swojej pracy dobrze. - Marcin Mazur 2019-02-12 16:00
Tak, nazywam się tak jak mój login wskazuje. - Marcin Mazur 2019-02-12 16:07
Witam rodzinę :D (takie samo nazwisko) - MasterOf 2019-02-12 17:28

Pozostało 580 znaków

2019-02-12 14:39

Rejestracja: 9 lat temu

Ostatnio: 1 godzina temu

0

Ja bym ten web calculator wywalił z portfolio, bo tylko działa na szkodę. I szkoda też że jak wybieram element z sidebara na telefonie to ten sidebar się potem nie zamyka.


Zrobione - w następnej wersji sidebar będzie zamykał się po wybraniu elementu. - Marcin Mazur 2019-02-12 15:09

Pozostało 580 znaków

2019-02-12 15:02

Rejestracja: 3 lata temu

Ostatnio: 1 minuta temu

0

Jakieś licencje?


Jak się nie podaje jaka licencja to jest defaultowa. "the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work. " - qbns 2019-02-12 16:26
@qbns: Jakieś źródło? - lion137 2019-02-12 17:29

Pozostało 580 znaków

2019-02-12 15:10

Rejestracja: 1 rok temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Wrocław

0
lion137 napisał(a):

Jakieś licencje?

Mogę prosić o rozwinięcie pytania?

Moglbys dodac licencje. - lion137 2019-02-12 15:35

Pozostało 580 znaków

2019-02-13 08:27

Rejestracja: 5 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Poznań

0

Potrzebujesz interface jesli masz tylko jedną implementacje? ;)


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
Do czasu jak nie planuję zmian to niekoniecznie, jednak jeżeli w przyszłości chciałbym dodać inną implementację to wcześniej utworzony interface ułatwia zadanie. - Marcin Mazur 2019-02-13 09:58
To brzmi jak odpowiedź kogoś kto nie rozumie po co to się robi. - TomRiddle 2019-02-13 10:29

Pozostało 580 znaków

2019-02-13 08:39

Rejestracja: 11 lat temu

Ostatnio: 1 tydzień temu

1

Masz te aplikacje gdzieś publicznie zdeployowane?

EDIT

Podajesz ze projekty mavenowe, ja nie mogłem znaleźć pom.xml i nie jestem w stanie uruchomić projektu/testów lokalnie.

Pierwsza rzecz której nie lubię to podział paczek na controller, service itp i pakowanie tam controllerów z całej aplikacji. Jak się projekt rozrasta to mamy X klas w takiej paczce i znalezienie controllera bez pamiętania nazwy to koszmar. Pomyśl o paczkach tematycznie, np. user może mieć pod sobą tylko controllery i servisy związane z kontem użytkownika. Takie paczki łatwiej też wyodrębnić do użycia w innych projektach. Poszukaj na yt wykładu Jakuba Nabrdalika na ten temat.

JSP... serio? Chcesz w tym pracować? Czy na takie tutoriale trafiłeś? Thymeleaf niby lepiej hmm. Ogólnie widać, że trochę czasu zaangażowałeś w te projekty i w tych technologiach powinieneś pracę znaleźć bez problemu.
Jeśli jednak chcesz dalej angażować czas w swój rozwój to proponuję przesiadkę na Single Page Application. Pod względem pracy pewnie Angular albo React (wolałbym Reacta), dla własnych projektów lub na start polecam Vue. A więc SPA na front, REST backend.
Osobiście nie lubię hibernate i jak patrzę na te sqle w stringu (u Ciebie jakieś hql i częściowe zapytania w stringach) to mi niedobrze :) Sam korzystam ze Spring Data, bez hibernate, działam na kolekcjach javowych i logikę piszę w javie niezależnie od frameworka. Póki co mi się podoba, może też tak spróbujesz.


edytowany 1x, ostatnio: kkojot, 2019-02-13 09:33

Pozostało 580 znaków

2019-02-17 10:53

Rejestracja: 1 rok temu

Ostatnio: 11 miesięcy temu

Lokalizacja: Wrocław

0

Dziękuję wszystkim za poświęcony czas oraz za wasze cenne wskazówki i porady. W szczególności dziękuję @kkojot. Twoja odpowiedz jest bardzo treściwa i wyznacza mi nowy, interesujący kierunek rozwoju.

Pozostało 580 znaków

2019-02-17 22:23

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

1

No to jedziemy :) nie napisałes, które repo, wiec wziąłem Simple-CRUD-Application

  1. wrzuce .settings do repo, to sa ustawienia eclipsa, pozwol innym miec wlasne (lub na inne IDE)
  2. commity po polsku, tak srednio to wyglada
  3. wrzucone jakies jary na gita, po co to komu, przeciez masz mavena
  4. wrzucony folder target do gita
  5. gdzie są testy
  6. metody na ponad 100 linii, polecam przeczytac clean code
  7. nazwy zmiennych/pol nie zgodne z konwencja np. gbc_salaryTextField
  8. gdzie są klasy z logiką? nie widze, wiec zakladam, ze logika siedzi w UI czyli w tych wszystkich klasach *Dialog. Nie jest to najlepszy design jaki można wykombinowac, fajnie gdyby logika była wydzielona do osobnych klas i działała na abstrakcyjnych klasach (chodzi o byt abstrakcyjny, a nie ze klasa ma miec slowko kluczowe abstract) tak zeby nie zalezala od UI/infrastruktury/jakiejkolwiek technologii czy bibliotek.

Limitations are limitless

> ##### Ola Nordmann napisał(a)
> Moim językiem ojczystym jest C++ i proszę uszanować to, że piszę po polsku.
Mój błąd, że nie wskazałem które repo. Simple-CRUD-Application to pierwsza aplikacja jaką zrobiłem na samym początku nauki, później nie wróciłem już do niej. Muszę usunąć ją z githuba, tylko zaciemnia niepotrzebnie. - Marcin Mazur 2019-02-18 07:22

Pozostało 580 znaków

2019-02-18 18:53

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

2

No dobra to patrząc po commitach biere web-calculator:

  1. WebCalculatorApplicationTests -> pusty test
  2. https://github.com/mmazur658/[...]/CalculatorStatUtilsTest.java -> formatowanie popraw, czasem po kilka wolnych linii, które nie wiadomo czemu słuzą, bardzo duże metody testowe, można by ładnie to podzielić zazwyczaj tam gdzie masz pare linii kodu oddzielonych enterami to z tego mógłbyś wyciągnąc osobną metodę, testujesz CalculatorStatUtilsImpl, czyli implementacje - a gdzie testy zachowania? Czy CalculatorStatUtilsImpl to jedyna implementacja danego interfejsu? Jeżeli tak to bez sensu.
  3. shouldGetToday co ten test robi? Sprawdza czy twoja klasa zwróciła dokładnie to samo co SDF?
  4. ServiceUtilsImpl abstrahujac od suffixu Impl w nazwie, ktory zaciemnia bo nic nie wnosi - czy idzie dac lepsza nazwę niz ServiceUtils?
  5. testujesz klasy w bardzo mocnej izolacji, myslales nad jakims testem, ktory by sprawdzil chociaz główną scieżke? Czy to wszystko ze sobą gada?
  6. https://github.com/mmazur658/[...]ctFormMessageService.java#L39 w takiej metodzie komentarz wydaje sie byc zbedny, nazwa metody powinna jasno mowic co zostanie zwrócone
  7. tak samo jak ten komentarz: https://github.com/mmazur658/[...]latorStatServiceImpl.java#L30
  8. https://github.com/mmazur658/[...]earchEngineUtilsImpl.java#L25 bardzo długa metoda, przydałby się refactor. Tak samo możnaby wykorzystac Stream API wprowadzony w Javie 8
  9. https://github.com/mmazur658/[...]ils/ServiceUtilsImpl.java#L23 tworzysz klasę przez ustawienie pól setterami. Czy te settery są ci w ogóle potrzebne? Czy nei lepiej byłoby mieć niemutowalny obiekt i tworzyć go konstruktorem?
  10. https://github.com/mmazur658/[...]ils/ServiceUtilsImpl.java#L69 wygląda jak anemic entity. Czy nie byloby lepiej gdyby klasa ContactFormMessage posiadała te logikę zamiast wywalać jej bebechy na wierzch? Law of demeter
  11. klasa ServiceUtilsImpl tworzy rózne obiekty, zmienia im stan, tworzy zapytania HQLowe... troche dużo odpowiedzialnosci, a kodu mało, więc z biegiem czasu może się rozrosnąc do God Object

Limitations are limitless

> ##### Ola Nordmann napisał(a)
> Moim językiem ojczystym jest C++ i proszę uszanować to, że piszę po polsku.
edytowany 1x, ostatnio: hcubyc, 2019-02-18 18:56

Pozostało 580 znaków

2019-02-18 19:50

Rejestracja: 1 rok temu

Ostatnio: 1 miesiąc temu

0
> grep -c -h '\S' **.java | datamash count 1 sum 1
54      5111
> find -printf '%d\n' | datamash max 1
9
> 

54 pliki *.java zawierające 5111 niepustych linii. Wysokość drzewa 9. Nieźle jak na kalkulator.

UNIX V1 (kernel + Thompson Shell):

> grep -c -h '\S' **.s | datamash count 1 sum 1
13      4501
> find -printf '%d\n' | datamash max 1
1
> 

:D

Pozostało 580 znaków

Odpowiedz

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