Nauka programowania Java/Spring/Hibernate : Pracochłonność konfiguracji Javy

0

Od lat programuję w PHP. Obiektowo z wykorzystaniem frameworków MVC, ORM-ów i w miarę stosując wzorce projektowe. Uczę się teraz Javy. O ile proste apki konsolowe jestem w stanie napisać praktycznie tak samo szybko jak w PHP; umiem też pracować na wątkach, których nie ma PHP to mam problem czasowy z tymi konfiguracjami XML... teraz np. siadłem do postawienia nowej apki Spring + Hibnerate i chyba 4h szukałem brakujących pakietów. Używam STS + Mavena. Mimo to konfiguracja zabiera mi masę pracy, odbiera trochę chęci. Czy Wy też tak macie? A może po latach doświadczenia postawienie nowej aplikacji to zawsze 5 minut roboty i zrobione?

0

Jakbyś użył IntelliJ i Spring Boot to postawiłbyś w 5 minut bez żadnego xmla. No ale skoro uczysz się z jakiegoś 10-letniego tutoriala do Springa 2 to cóż możemy ci poradzić?

0
Shalom napisał(a):

Jakbyś użył IntelliJ i Spring Boot to postawiłbyś w 5 minut bez żadnego xmla. No ale skoro uczysz się z jakiegoś 10-letniego tutoriala do Springa 2 to cóż możemy ci poradzić?

Spring 3.1.1

Czyli mówisz, że teraz tylko Spring boot ma sens?

0
juniorjavadev napisał(a):
Shalom napisał(a):

Jakbyś użył IntelliJ i Spring Boot to postawiłbyś w 5 minut bez żadnego xmla. No ale skoro uczysz się z jakiegoś 10-letniego tutoriala do Springa 2 to cóż możemy ci poradzić?

Spring 3.1.1

Czyli mówisz, że teraz tylko Spring boot ma sens?

Nie, po prostu ma w miarę sensowne domyślnie konfiguracje plus sam się konfiguruje - tzn np. dodasz bibliotekę od bazy danych i żadnej konfiguracji to domyślnie jeśli masz na localu powinieneś się połączyć z tą bazą. Czyli coś tam zakodzisz bez zbędnego na początku zagłębiania się w konfigurowanie i zrozumienie tego

0

@juniorjavadev a wiesz ze jest już Spring 5? ;) Spring 3 wyszedł w roku 2011, a mamy rok 2017.
Spring Boot pomaga właśnie z tym na co narzekasz -> z konfiguracją kiedy nie jest ci ona zupełnie potrzebna bo ty chcesz żeby po prostu działało. Jak już będziesz konfigurować system do pracy z milionem użytkowników to możesz sobie wtedy odpowiednio wszystko poustawiać ;)

3

teraz np. siadłem do postawienia nowej apki Spring + Hibnerate i chyba 4h szukałem brakujących pakietów. Używam STS + Mavena. Mimo to konfiguracja zabiera mi masę pracy, odbiera trochę chęci. Czy Wy też tak macie?

Ja tak mam. Jak uczę się nowych rzeczy, to tracę na to godziny. Później umiem szybciej. Nie jest to oczywiste?

Przykładowo wiele godzin kosztowało mnie zgłębienie konfiguracji systemów logowania, żeby zmusić Springa do pokazania mi tego, co chcę. Jest to bardzo skomplikowane. No ale opłacało się, mam teraz nad tym kontrolę. Warto inwestować te godziny, bo dają pełne zrozumienie tematu. Samograjów jak Spring Boot unikam. Ale jak celujesz w poziom junior deva, to możesz iść najprostszą drogą. Konfigurować mogą inni.

A odnośnie brakujących pakietów - może robisz jakiś błąd. Przecież pakiety same ściągają to, co im potrzebne.

1

Nie wiem jak to jest w Spring (@scibi92 ?), ale robienie wszystkiego na piechotę (konsola plus edytor tekstu a nie IDE) ma swoje plusy.
Uczysz się więcej dzięki temu - właśnie jakie trzeba załączyć pakiety albo co Ci się pokaże jeśli zapomnisz dać średnika.
Ja właśnie w ten sposób się uczę.

Spring Boot i IDE zostaw sobie na okres przed pracą, ew. jak już będziesz chciał się uczyć samego Spring Boot.
Pewnym (dużym) ułatwieniem jest Maven - metodą Kopiego-Pejsta wklejasz kilka zaklęć i masz zależności które inaczej musiałbyś na piechotę instalować.
Co nie jest przyjemne ani sensowne.
Ale i tak warto te zaklęcia analizować żeby się np. nie okazało że odpalasz coś nie w tej kolejności albo nie na tym artefakcie.
Alternatywą dla Maven jest Gradle ale to już zależy czego się uczysz.
Akurat Spring Boot chyba wspiera oba: https://spring.io/guides/gs/spring-boot/

0

@vpiotr: Korzystanie z Mavena nieprzyjemne? jak jakiejś klasy z pewnej biblioteki mi nie widzi, to nazwa klasy w google, repo Mavena, kopiuj wklej do pom.xml i jechana xd ale fakt faktem że takie bezmyślne dodawanie wszędzie dependencji skutkuje potem że mamy wiele nadmiarowych jarów (moduł X wymaga dependencji A, moduł Y wymaga modułu X i dependencji A więc nie musi już bezpośrednio zaciągać tego A)

0

@juniorjavadev: Jeśli chcesz się szybko nauczyć Springa, to polecam Spring In Action, tam też jest opisana konfiguracja, w xml i w Adnotacjach, przejdź przez to, a potem używaj spring boota - on, ja już ktoś napisał się "sam konfiguruje", czyli skraca czas konfiguracji, do minimum.

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