Projekt Spring jako załącznik do CV

0

Od niedawna rozwijam własny projekt, w którym prezentuje swoje umiejętności (Spring + Hibernate + Thymeleaf). Docelowo chciałbym, aby stanowił załącznik do mojego CV. Napiszcie proszę, co sądzicie o tym, co do tej pory stworzyłem. Rozwijam go od zera na podstawie wymagań funkcjonalnych.

https://github.com/sparrov/tms

3

Nie ma readme więc nie wiem co to robi. Nie ma konfiguracji mavena ani gradla, więc nie mogę tego zbudować. Nie wiem nawet jaką wersję Springa i Hibernate używasz :(
Ale podoba mi się nazwa tms taka nie za wiele mówiąca
Nie lubie MySQLa :|

1

Nieśmiertelny i uświęcony zestaw "Spring + Hibernate + Thymeleaf" wysłało już 14 tysięcy 739 absolwentów bootcampów
Takich githubów ci u nas dostatek ale i ten przyjmujemy jak wróżbę zwycięstwa

0

@KamilAdam:
Faktycznie nieco enigmatycznie. Dzięki za uwagi. Dodałem już do repozytorium readme i pom'a.

1
BraVolt napisał(a):

Nieśmiertelny i uświęcony zestaw "Spring + Hibernate + Thymeleaf" wysłało już 14 tysięcy 739 absolwentów bootcampów

Takich githubów ci u nas dostatek ale i ten przyjmujemy jak wróżbę zwycięstwa

Może wystarczy w CV podawać numer (oryginał: numerowane dowcipy w domu wariatów)

1

@AnyKtokolwiek:

Dobry dowcip to nie jest zły pomysł. Inteligentna osoba która dostanie CV nie ma co prawda pojęcia jak się czyta kod pod Thymeleaf ale dobry dowcip może docenić i zdecydować, żeby takie CV puścić dalej, bo może jak dowcip dobry to programiści spojrzą życzliwym okiem na fajnie napisany kod?

2

Tak na kilka minut patrzenia w kod:

  1. https://github.com/sparrov/tms/blob/main/src/main/java/pl/szymonwrobel/tms/services/BlockService.java ?

  2. https://github.com/sparrov/tms/blob/main/src/main/java/pl/szymonwrobel/tms/services/UserService.java
    Metody createSomething - dobrze by było zmienić aby coś jednak zwracały, jakąś odpowiedź, tak aby na froncie było wiadomo co się zadziało.

a) https://github.com/sparrov/tms/blob/main/src/main/java/pl/szymonwrobel/tms/services/TrainingApplicationService.java to co w 2
b) https://github.com/sparrov/tms/blob/main/src/main/java/pl/szymonwrobel/tms/services/TrainingApplicationService.java#L46 tę metodę można by skrócić o 4 linijki

Nie musisz pisać kodu tak:

List<Something> listOfSth = new ArrayList<>();
return listOfSth;

Możesz pisać od razu tak:

return new ArrayList<>();

W wielu miejscach robisz tak samo.

  1. https://github.com/sparrov/tms/blob/main/src/main/java/pl/szymonwrobel/tms/services/InitialDataService.java#L41 XD
    Może lepiej te dane testowe przenieść do pliku i wczytywać je i zapisywać przy starcie aplikacji do bazy? A jeśli nie, to nie wiem. chociażby zamień to na Mapę ;)

  2. Zamień logi na język angielski.

  3. Plus za poprawne wstrzykiwanie zależności i brak @Autowired

  4. Minus za thymeleafa. Nawet tam nie zaglądam tam, bo szkoda mi na to czasu.
    Moim zdaniem szkoda też i Twojego czasu na Liścia.

Całe API nie jest jakieś potężne. Za wiele kodu tam nie ma, dobrze by było wpaść jeszcze na kilka funkcjonalności i je pododawać.

0

Zainteresuj się "architekturą" *package per feature * zamiast pakować wszystkie serwisy do jednego worka, kontrolery do innego itp bo przez to cała enkapsulacja projektu leży i kwiczy (nie ma jej).

2

Ja myślę, że jeszcze dużo pracy przed tobą. Dużo nieprzemyślanego kodu, który nic nie robi, zakomentowane metody, złe nazewnictwo, złe praktyki (tworzysz beana, a potem tworzysz go przez new), brak testów.

1

Nie ma testów, odrzucam od razu

2
private UserEntity adminUser;
private UserEntity trainerUser1;
private UserEntity trainerUser2;
private UserEntity trainerUser3;
private UserEntity studentUser1;
private UserEntity studentUser2;
private UserEntity studentUser3;
private TrainingEntity training1;
private TrainingEntity training2;
private TrainingEntity training3;
private TrainingEntity training4;
private TrainingApplicationEntity trainingApplication1;
private TrainingApplicationEntity trainingApplication2;
private TrainingApplicationEntity trainingApplication3;
private TrainingApplicationEntity trainingApplication4;
private BlockEntity block1;
private BlockEntity block2;
private BlockEntity block3;
private BlockEntity block4;
private BlockEntity block5;
private BlockEntity block6;
private BlockEntity block7;
private BlockEntity block8;
private ClassesEntity classes1;
private ClassesEntity classes2;
private ClassesEntity classes3;
private ClassesEntity classes4;

Nie miałeś wrażenia, że warto rozważyć użycie kolekcji?

1
package pl.szymonwrobel.tms.enums;

public enum UserType {
    ADMIN("Administrator"),
    TRAINER("Prowadzący"),
    STUDENT("Uczestnik");

    private final String displayName;

    UserType(String displayName) {
        this.displayName = displayName;
    }

    public String getDisplayName() {
        return displayName;
    }
}

Zastanawiałem się po co taka konstrukcja.
Chyba wiem, relacja między prowadzącym zajęcia a szkolącym po lekkim zmieszaniu się wymagają 'doprecyzowania'
trainer - trainee
teacher - student

PS
To żart, oczywiście

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