Tworząc projekt do pracy w springu i javie, korzystać z gotowych rozwiązań dodanych do springa typu Spring Data Rest, Spring HATEOS, Lombook? Czy tworzyć wszystko tradycyjnie tzn. implementować te rozwiązania ręcznie, tradycyjnie korzystać z Hibernate jako osobnej biblioteki itd? Jak na to patrzą przy rekrutacji? Niby robiąc tradycyjnie pokazuje, że wiem o co chodzi i jak to działa "pod spodem", ale znowu korzystając z wyżej wymienionych 'ułatwień' pokazuje, że znam nowe technologie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rav33:
Lepiej pokażesz, że wiesz, jak to pod spodem działa, jeśli w ogóle nie będziesz korzystał ze Springa i napiszesz własny framework.
Tak w ogóle korzystanie z javac to lamerstwo. Poważny programista Javy pisze bytecode w hexedicie.

  • Odpowiedz
@rav33: przesadzacie, żaden rekruter nie poświęci więcej niż 3 minuty na waszego gita. To czy używacie spring data jpa czy hibernate też nie ma znaczenia. Tak samo lombok. Przede wszystkim liczy się jakość aplikacji czyli czysty obiektowy kod i odpowiednia architektura. Jak chcecie zaimponować pracodawcy to możecie użyć jakiegoś niszowego frameworka albo napisać własny coś ala demo-framework.
  • Odpowiedz
#java #spring

Ktoś poleci jakis poradnik/kurs na temat pisania testow jednostkowych i integracyjnych. Również Junit5 i Mockito czy może bardziej Spock i jego implementacja mockow itd?
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W drugim rozdziale autor tworzy klasę DesignTacoController. Są w niej elementy, których nie ma we wcześniejszych etapach książki, np. jest tworzony obiekt new Taco(), a takiej klasy nigdzie wcześniej nie było, jest też odwołanie metody, której nigdzie nie ma podanej. Chwilę później autor każe już wszystko kompilować - i według niego wszystko powinno ładnie pokazać się na localhost:8080/design, a to naturalnie nie działa.
Dlatego nie wiem o co z tym chodzi -
  • Odpowiedz
Hej,
Jestem zielonym programistą z bootcampowym startem. Na kursie poznałem Jave EE, SE, Springa, Hibernate, JSP, SQL, szeroko rozumiane podstawy frontu z HTML5, CSS3 i podstawami JS. zainteresowanych zapraszam na konto na bitbucket https://bitbucket.org/TomaszJedrzejczyk/ . Pisze na Mirko ponieważ potrzebuje podszkolić swoje umiejętności i nauczyć się czegoś nowego. Jeżeli są tutaj osoby które potrzebują pomocy w jakimś projekcie lub zaczynacie coś od początku i potrzebujecie pomocy lub poprostu chce dać zielonce szanse
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@tomuho: Moim zdaniem jak na początek drogi to nieźle. Tylko teraz musisz zacząć naukę programowania na serio bo to co miałem na kursie to nawet nie są podstawy. Tak popatrzyłem to nic u ciebie nie nadaje się na portfolio, same hello worldy. Musisz napisać 3-4 porządne aplikacje, które coś robią. Nie żadne to-do list, chaty, kalkulatory, biblioteki czy wypożyczalnie aut.

Co możesz zrobić? Na start możesz przeczytać książkę o algorytmach i
  • Odpowiedz
  • 2
@Bruno_: zacznij od ustalenia czy piszesz testy jednostkowe czy integracyjne.

Jak jednostkowe, to nie powinny one dotykać springa, bo stawianie kontekstu kosztuje sporo. Wtedy korzystasz tylko z biblioteki do mocków i wstrzykujesz sobie do testowanej klasy mocki zależności zewnętrznych.

To o czym mówisz, czyli MockMvc i inne springowe rzeczy stosuje się w testach integracyjnych gdzie stawiasz cały kontekst (najczęściej z jakąś bazą/brokerem in memory/wiremockiem) i wtedy już testujesz całość na
  • Odpowiedz
@Bruno_: Rób sobie integracyjne testy kontrolerów razem z @SpringBootTest i @RunWith(SpringRunner.class), możesz wtedy stestować praktycznie cały endpoint. Nie musisz wtedy mockować, rzucasz na autowired co chcesz + możesz sobie stworzyć interceptor testowy. (np. jakąś fabrykę z @PostConstruct która ci będzie bazę danych wypełniać przed testem. Mocki są dobre do jednostkowych jak chcesz sprawdzić pojedyńczą logikę (czy np ci prawidłowo stream coś zwróci w przypadkach granicznych. Generalnie
  • Odpowiedz
Wytłumaczy mi ktoś różnicę między DTO a DAO, tworzę aplikację restową i widzę pełno przykładów z użytą warstwą DTO, moja aplikacja korzysta z DAO przy połączeniu z bazą danych, po co w takim razie stosuje się DTO? Powinienem tego używać?
#programowanie #java #spring
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@rav33: @rilly: DTO to Data Transfer Object, tworzysz go pod specyficzny case gdzie chcesz przekazać konkretne dane z jednego miejsca do drugiego - on tylko je grupuje. Praktycznie taki struct z C. Jak masz bazodanowe encje to zapewne posiadają o wiele więcej informacji niż chcesz przekazać do użytkownika API, więc tworzysz DTO które przekazuje tylko te informacje które chcesz przekazać.

DAO to Data Access Object i jest to
  • Odpowiedz
Podzieliłby się ktoś poradą jak zaprogramować przycisk żeby przesuwał element z listy o jeden element do góry?
#spring
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam test który przechodzi:

Kontroler wywala java.lang.NoClassDefFoundError: com/{...}/model/Marker


@nocneszczury: Być może klasa Marker zdefiniowana w źródłach testowych? A jeśli Marker jest z biblioteki to biblioteka dodana tylko jako zależność test? Ewentualnie klasa Marker jest obecna w momencie kompilacji ale nie jest dorzucana do classpath'a.
  • Odpowiedz
@mk321: piszę inżynierkę Kotlin + Springboot. Wszystko działa, z tym, że ja skorzystałem z JSONów i domyślnego Jacksona. Ogólnie widząc ::class.java można strzelać że biblioteka nie ma żadnego wsparcia dla Kotlina, więc mogą pojawić się problemy z domyślnie finalnymi klasami itp. itd.
@nocneszczury jakiś czas temu przepisywałem mój mały projekt monolitowego serwera na Kotlina, https://github.com/gosak/pfc-server/tree/develop jest tam sporo błędów ale może coś ciekawego wyciągniesz. Tylko wejdź na branch develop
  • Odpowiedz
@rav33: możesz też zbudować angulara do folderu static i hostować go statycznie, wtedy nie będziesz musiał podawać adresu serwera i portu w serwisach angularowych ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Cześć Mirki,

Mam do was pytanie natury mikroserwisowej. Minaowicie co nalezy rozumieć pod pojęciem testów integracyjnych architektur mikroserwisowych?

Samą komunikację między wybranymi dwoma mikroserwisami można sprawdzić przy pomocy testów kontraktu (pact lub spring cloud contract) natomiast większych integracji.

Zakładając
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#java #spring

Załóżmy, że z mojej strony korzysta dwóch userów: user A i user B.
Jak zapobiec sytuacji w której user A wykonuje posta jako user B? Spring ma jakieś gotowe rozwiązania czy nie?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bruno_: sprnig security obsługuje i uwierzytelnianie (czy user A to user A) i autoryzacje (czy user A może wysłać określonego requesta)
zobacz sobie w dokumentacji czy można np. po loginie sprawdzać w PreAuthorize, tam chyba można pisać wyrażenie w SpELu wiec powinno sie dać
  • Odpowiedz
Hej mirki. Stworzyłem listę źródeł do nauki #java #spring #hibernate jako, że dużo ludzi się o to pyta. Głównie są tam pozycje które sam przeczytałem - więc jeśli ktoś ma jakieś sugestie - proszę mówić. Można powiedzieć, że jest to kompletny przewodnik co czytać i z czego się uczyć, żeby jako tako ogarniać to środowisko i być w stanie coś stworzyć. Zachęcam do linkowania tego jeśli
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@kabdul: Dokumentacja to oczywiste must have, jednak zawarłem tam książki bo ludzie często pytają o nie zamiast dokumentacji. I jeśli polecasz - to wrzucę do listy ten kursik ( ͡° ͜ʖ ͡°)
  • Odpowiedz
#java #spring

Jak robic unit testy springa? Z definicji unit testy sa szybkie (każdy powinien wykonywać się kilka ms, czyli łącznie w małym projekcie powinno to dać jakies pół sekundy do sekundy), co oznacza że musi się to odbywać bez odpalania springa. Zalinkuje ktoś jakieś materiały?

W sumie jeszcze jedno pytanie xD te testy to co maja testowac? na logike to powinny serwisy testowac, ale da sie w ten sposob
Bruno_ - #java #spring

Jak robic unit testy springa? Z definicji unit testy sa szy...

źródło: comment_m0ITVXYvdWWxXxyb8O2qbUWzDiJO2mRt.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bruno_: Zgarniasz Mockito, uzywasz MockitoJUnitRunnera i testujesz każdy serwis osobno, mockując wszystkie jego zależności. W ten sposób w ogóle springa nie używasz a logika serwisowa jest przetestowana ładnie w izolacji.
  • Odpowiedz
@Bruno_: pisz tak, żeby jak najmniej używać springa. Wstrzykiwanie przez konstruktor bez kontenera IoC sprawia, że masz pełną kontrolę na swoimi zależnościami.

Zgarniasz Mockito, uzywasz MockitoJUnitRunnera i testujesz każdy serwis osobno, mockując wszystkie jego zależności. W ten sposób w ogóle springa nie używasz a logika serwisowa jest przetestowana ładnie w izolacji.


@Myzreal: i dzięki temu masz testy, które nic nie testują
  • Odpowiedz
Kiedy powinno się tworzyć w Springu w warstwie usług

public interface Interfejs
@Service
public class Klasa implements Interfejs
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki czy da się jakoś przyjemnie i szybko edytować statyczne pliki (html, js itd...) w Springu (bez boot)?
Eclipse sam w sobie po zapisaniu zmodyfikowanego pliku "zazwyczaj" zaraz automatycznie odświeży też zawartość na tomcat'cie. Ale czasem resetuje serwer i to trwa te pare sekund...

Osobiście wygodniej mi się modyfikuje takie pliku w VScode ale tutaj zapis pliku wcale nie odświeży zawartości serwera, trzeba się przeklinać na eclipsie aby on zauważył zmianę.

Jest coś lepszego? Jak
SpeedFight - Mirki czy da się jakoś przyjemnie i szybko edytować statyczne pliki (htm...

źródło: comment_PN0TY2sDjGery10fa94SFKSIWtpQ6JK4.jpg

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CichySzelestOka: TFW jesteś mgr inż. z elektroniki i już masz na koncie własny procesor w VHDL (,)


Dziś już trochę czasu przerabiam projekt na spring boota z sping data i zamiast gołego hibernate.
Niedługo się zabiorę za front i jak mnie szlag trafi z soyScriptem to odpalę *FilmRelated i będę w stanie coś naskrobać w angluar'ze ( ͡° ͜ʖ ͡°)
SpeedFight - @CichySzelestOka: TFW jesteś mgr inż. z elektroniki i już masz na koncie...
  • Odpowiedz
mirki, znacie jakieś źródło wiedzy gdzie w pełni zrozumiem jak działa hibernate ze springiem? Jakoś do dzisiaj zdarza mi się, że w moim kodzie leci wyjątek LazyInitializationException - could not initialize proxy - no Session. Również chętnie bym się dowiedział jak najlepiej przeciążać equals i hashcode, albo jakie są dobre praktyki.

#java #hibernate #spring #programowanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@jaxon9000: a co do Lazy to po prostu chodzi o to, że jeżeli korzystasz z spring data Jpa domyślne ustawienia w relacji to takie, że mając relacje OneToMany lub ManyToMany, gdzie dana klasa(encja) ma listę(podzbiór) elementów to domyślnie spring korzysta z lazy loading czyli ładuje wszystko oprócz tej listy elementów, aby nie pobierać niepotrzebnie danych. Relacja ManyToOne lub OneToOne domyślnie jest ustawiona na EAGER czyli jeżeli w danej klasie(encji) masz
  • Odpowiedz
@dupaztrupa
@jaxon9000

Działanie Lomboka opiera się na "hacku" - wykorzystuje nieudokumentowane API do generowania kodu. Jakie zagrożenia się za tym kryją to nie muszę mówić chyba, wystarczy wspomnieć że nieudokumentowane API mogą być usunięte w dowolnej chwili.

W prywatnym projekcie owszem, sam używam. W komercyjnym - w życiu. Nie chce być tym typem którego git blame wskaże za 10 lat jak się to w--------i i jakiś doświadczony inżynier będzie robił audyt
  • Odpowiedz