Po roku programowania na android w kotlin dostałem propozycję zmiany stanowiska na całkiem coś innego. Tworzenie WebService, praca na bazie Oracle. Technologie Spring Boot, REST, Grails framework. Prawdopodobnie po zmianie stanowiska lekka podwyżka. Pytanie jak później? Z tego co widzę na Mobile Dev z Kotlinem mało ofert. I tak jestem Junior póki co, jeszcze mogę zmienić

Co byście wybrali?
#programowanie #praca #android #kotlin #

Jakie stanowisko byście wybrali?

  • Android - Kotlin (zostać) 46.9% (15)
  • SpringBoot, REST, OracleSQL, Grails (zmienić) 53.1% (17)

Oddanych głosów: 32

  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ Live: Architektura Mikroserwisów – Stwórz Rozproszony System Sprzedaży e-Booków! 🚀 Już w poniedziałek o 19:00!

💡 Przygotuj się na warsztaty z architektury mikroserwisów! Zobacz, jak krok po kroku zaprojektować rozproszony system z wykorzystaniem Spring Cloud, aby tworzyć skalowalne aplikacje.

Podczas szkolenia:
✅ Dowiesz się, jak zarządzać i konfigurować mikroserwisy, by zapewnić niezawodność i stabilność całego systemu.
SoftBull - ✨️ Live: Architektura Mikroserwisów – Stwórz Rozproszony System Sprzedaży ...

źródło: architektura-zapowiedz

Pobierz
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

✨️ Live: Spring AI – Praktyczny Projekt i Integracja Sztucznej Inteligencji 🚀 Już w poniedziałek o 19:00!

💡 Odkryj, jak w praktyce zastosować sztuczną inteligencję w ekosystemie Spring! Podczas tego szkolenia dowiesz się, jak działa Spring AI, oraz krok po kroku zbudujesz projekt integrujący AI z aplikacją Spring. To idealna okazja, aby zrozumieć, jak wykorzystać AI do rozwiązywania rzeczywistych problemów biznesowych.

Podczas szkolenia:
✅ Zrozumiesz architekturę Spring AI – od podstaw po kluczowe komponenty,
SoftBull - ✨️ Live: Spring AI – Praktyczny Projekt i Integracja Sztucznej Inteligencj...

źródło: spring-ai-projekt

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SoftBull: jak już uczysz o praktycznych wykorzystaniach AI, to wypadałoby wspomnieć o tym na co w praktyce idzie 80%+ czasu pracy z AI, czyli ewaluacjach. Coś nie widzę tego punktu w twoim programie. xD
  • Odpowiedz
✨️ Live: Klienci HTTP w Spring – RestTemplate, WebClient, RestClient i Najlepsze Praktyki Testowania 🚀 Już w poniedziałek o 19:00!

💡 Odkryj, jak skutecznie korzystać z klientów HTTP w Spring i testować komunikację HTTP w swoich aplikacjach. Podczas szkolenia dowiesz się, jak działają RestTemplate, WebClient oraz najnowszy RestClient, i jak zapewnić stabilność połączeń HTTP za pomocą automatycznych testów.

Podczas szkolenia:
✅ Poznasz różnice w działaniu RestTemplate, WebClient i RestClient oraz dowiesz się, kiedy najlepiej
SoftBull - ✨️ Live: Klienci HTTP w Spring – RestTemplate, WebClient, RestClient i Naj...

źródło: klienci-http-w-spring

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@srgs: Przez długi czas sam używałem słowa "klienty" zamiast "klienci". Po wielu rozmowach i dyskusjach, jakie to wzbudzało, oraz zasięgnięciu porady językowej, doszliśmy do wniosku, że poprawną formą w języku polskim jest jednak "klienci", a nie "klienty". Słowo "klienty" to spolszczenie, które nie jest ani poprawne po polsku, ani w pełni zgodne z angielską formą.
Ale później ktoś rzucił, że "klienty" używa się po to, aby jasno wskazać, że tu
  • Odpowiedz
✨️ Live: Wirtualne Wątki w Java – Praktyczne Zastosowanie w Spring Boot 🚀 Już w poniedziałek o 19:00!

💡 Przygotuj się na livecoding, podczas którego zobaczysz, jak wirtualne wątki mogą zrewolucjonizować sposób zarządzania współbieżnością w aplikacjach Java.

Podczas szkolenia:
✅ Dowiesz się, jak działają wirtualne wątki i jak umożliwiają efektywne zarządzanie ogromną liczbą równoległych zadań, bez obciążania zasobów systemowych.
SoftBull - ✨️ Live: Wirtualne Wątki w Java – Praktyczne Zastosowanie w Spring Boot 🚀...

źródło: wirtualne-watki-jvm

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jest projekt napisany w Spring Boot 2.4.4. Teraz mam do wyboru albo upgrade do 3.3.3, albo na jakiś nowoczesny framework typu Quarkus. Szczerze to nie śledzę zmian w Springu i nie wiem, na czym to teraz stoi. Obecnie brakuje mi hot reload, a sama aplikacja dość długo wstaje. Tylko jeśli zdecyduję się przepisać wszystko na inny fw, to tydzień roboty.

Stack w tym projekcie:

Back-end
- Spring 2.2.4
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Do tej pory zastanawiam się na c--j się ludzie pchają w tą technologię jak Można wiele rzeczy o--------ć bez tego gówna


@Ksiega_dusz: U nas klient tak chciał. A jaką alternatywę proponujesz? Klientowi chodziło głównie o to, żeby scrollowanie działało szybko i żeby posty dało się umieszczać w wielu kategoriach (po to używamy wide table).
  • Odpowiedz
@SendMeAnAngel: Serio estymujesz że to 5 dni roboty (napisałeś tydzień) przepisanie tego np na Quarkusa? Nie byłbym taki optymistyczny bo tam w c--j kwiatków może wyjść po drodze. No chyba że lubisz się deklarować a potem n---------c darmowe nadgodziny to spoko.
  • Odpowiedz
Czy zmiana hibernate,.konkretniej wersji 4 na najnowsza 6.5 moze pomoc w optymalizacji zapytania, ktore hibernate tworzy automatycznie? Czy to tak nie dziala? Roznica okolo 10 lat w tych wersjach
#spring #java #programowanie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam mała rozkminkę, otóż mam do realizacji mały projekt:
- appka mobilna - prawdopodobnie KMM (ios+android, może i web)
- appka webowa - zarządzanie treścią, userami
- backend - CRUD - użytkownicy, jakiś cms, wysyłanie notyfikacji/sms
- przechowywanie video/zdjęć - tutaj pewnie 3rd-party - vimeo

Założenia
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KwasowyProktolog10kJava: zrobiłem apke w flutter+firebase+cloudfunctions. Flutter troche słaby wydajnościowo na starszych urzadzeniach i nie jest SEO friendly, reszta spoko, najwiekszy koszt to cloud storage(duzo zdjęc) no i cloud function tez żrą sporo, lepiej odrazu z klienta uderzać do bazy jak się da to wtedy wychodzi jak za darmo.
  • Odpowiedz
Hej. Chcę wykorzystać autoryzacją za pomocą oAuth, grant type: password (tak wiem, że nie zalecane).
Chcę to zrobić na starszej wersji Springa (4), więc nie mam tutaj do czynienia z typowym oauth clientem, managerem itp. i innymi fajnymi rzeczami w spring 5 czy 6.
Działam na obiekcie OAuth2RestTemplate.
I generalnie, token mój ma żywotność 30 minut i jak robię requesty do 30 minut to używa tego samego tokena, ale po 30 minutach,
Milo900 - Hej. Chcę wykorzystać autoryzacją za pomocą oAuth, grant type: password (ta...

źródło: image

Pobierz
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Milo900: za dużo oczekujesz, że spring zrobi za ciebie. Złap wyjątek, obsłuż go autoryzując się jeszcze raz, samemu ustawiając refresh token zamiast password. Poza tym jwt możesz odczytać, dekodując z base64. W nagłówku będziesz miał ważność tokenu i nawet nie musisz łapać wyjątku, wystarczy że przed wysłaniem requestu sprawdzisz czy token jeszcze nie wygasł (albo czy nie wygaśnie w ciągu np. 1-10 sek :) ), jak wygasł (lub niedługo wygaśnie)
  • Odpowiedz
✨️ Obserwuj #mirkoanonim
Co trzeba umieć, żeby dostać się na staż z javy, albo chociaż DARMOWE praktyki w jakimś januszexie? Muszę odbyć praktyki na studiach, a obecna sytuacja na rynku jest przynajmniej godna pożałowania. W ciągu ostatniego miesiąca chodziłem na targi pracy i ofert było tyle co kot napłakał, zostawiłem CV o ile w ogóle na to pozwalali, oczywiście zero odzewu. Mam świadomość, że projekty w moim portfolio nie są najlepsze
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam w swojej aplikacji trzy role i chciałbym przetestować czy zostanie zwrócony odpowiedni błąd jeśli użytkownik nie ma roli admina i próbuje strzelić na endpoint dla admina. W testach mam porobione metody np. sendRequestAsUser, która wyciąga użytkownika z rolą USER z bazy, generuje JWT i zwraca token jako String. Pierwsze co przyszło mi do głowy to napisanie testu sparametryzowanego żeby nie powtarzać kodu, ale tutaj pojawia się problem, bo do adnotacji MethodSource
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W gwoli jasności, to możliwe jest przekazanie niestatycznej metody do @MethodSource zmieniając cykl życia testu adnotacją - @TestInstance(PER_CLASS).

Możliwe, że twoją weryfikację da się zrealizować jeszcze łatwiej (bez bazy danych). Z MockMvc mogłoby to wyglądać w następujący sposób: mockMvc.perform(get(...).with(SecurityMockMvcRequestPostProcessors.user().roles(Role.ADMIN))
więc @MethodSource mógłby parametryzować Role albo cały RequestPostProcessor. Tutaj będzie zwykły Springowy User ale tych RequestPostProcessor jest sporo (są też związane z OAuth2).

Jeżeli chcesz WebTestClient to tam to się nazywa mutator (interfejs
  • Odpowiedz
  • 0
@Smevios:

Ta adnotacja @TestInstance(PER_CLASS) może mi się przydać, dzięki.

Zrobiłem sobie sparametryzowany test z wykorzystaniem MockMvc i w sumie działa to okey. Są zwolennicy używania MockMvc, jak i są przeciwnicy. Ja jeszcze nie zagłębiałem się w problemy z
  • Odpowiedz
Chcę stworzyć metodę w springowym kontrolerze, z endpointem pod który wyślę dużo danych (dostałem jsona z 20 polami, ale może być ich więcej w przyszłości). i te dane prześlę dalej robiąc calla do zewnętrznego api żeby wyciągnąć jakieś tam dane biznesowe.

No i tu pytanie. Mówią, że GET służy do pobierania danych a POST tylko do zmiany stanu. Ale raczej nie jest to bezpieczne wysyłać te dane w urlu, co wtedy? Można
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirek_dev: GET może mieć body

Niestety nie jest to dobrym pomysłem bo dużo bibliotek / serwerów / proxy HTTP nadinterpretuje specyfikację (lub zostało zakodowana na bazie nieaktualnej, sprzed 2014) i potrafi robić różne dziwne rzeczy jak np. ignorować body w GET albo nie pozwala go dodać po stronie klienta itp. - jeśli tak jest to jest to radosna twórczość tychże bibliotek, bo obecnie obowiązująca specyfikacja HTTP nie zabrania.

A payload
  • Odpowiedz
Mirasy chciałem napisać integracyjny test uderzając pod dany endpoint w controllerze gdzie używam spring webfluxa i w którymś z kolei serwisie uderzam do dwóch zewnętrznych apek. I właśnie te dwa calle chciałem zmockować, ale otrzymuję timeout. Korzystam z WebTestClient i MockWebServer.
Tutaj więcej szczegółów i kod. Pomoże ktoś? Bo siedzę już którąś godzinę nad tym ( ͡° ʖ̯ ͡°)
https://stackoverflow.com/questions/77957328/mocking-webclient-response-in-integration-test-using-mockwebserver-or-alternativ

#spring #springboot #programista15k
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mirek_dev: akurat z webfluxa nie korzystałem nigdy. Próbowałeś na próbę użyć jakiegoś standardowego, niereaktywnego rest clienta?
To co opisał @farowy to też rozwiązanie, ale to już znacznie więcej roboty, żeby później to jeszcze osetapować na środowisku testowym itp
  • Odpowiedz
Czy nazwy endpointów z rolami, które mogę ich używać są ok czy raczej nie powinno się tak robić? Np. /public/products albo /admin/orders. Ułatwia to dość konfiguracje Spring Security, bo po prostu piszesz, że pod /public/* mogą wejść wszyscy a pod"/admin/* tylko admini i nie trzeba do każdego zasobu pisać oddzielnego konfiga.
#java #spring #naukaprogramowania #programowanie #programista15k
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Nofenak: domyślną daj publiczna, bez nazywania czyli na przykład /products albo /orders.

Jak chcesz żeby użytkownicy z innymi rolami dostawali inne zasoby, to wtedy dorzuć endpointy pod ten typ użytkownika: /admin/products albo /admin/orders
  • Odpowiedz
@Nofenak: Imho największy sens ma dzielenie według konsumenta API. Np. jeśli masz publiczne API, API pod frontend użytkownika i pod frontend admina, to powinny mieć one własne ścieżki. Wtedy masz największą elastyczność przy zmianie poszczególnych endpointów i wiesz na których konsumentów wpłyną te zmiany. Dodatkowo można pod każdego konsumenta ustawić stosowne nagłówki, caching, itp.
  • Odpowiedz
Cześć,
stworzyłem sobie klasę pomocniczą do rejestracji w której trzymam jsony:

public class RegistrationControllerHelper {
public static final String validCredentials =
"{\"username\": \"New\", \"email\": \"new@mail.com\", \"password\": \"Password#3\"}";
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kamishimi:
1. Nie tworzyłbym żadnych Helperów - co taka klasa oznacza? Sam widzisz, że nie do końca wiesz co ona robi i tak ją nazwałeś ( ͡° ͜ʖ ͡°)
2. Jeżeli jest to używane tylko przez test to dałbym to do klasy testowej
3. W nowszej wersji Java możesz użyć """ aby zrobić wielolinijkowy String i wtedy nie bedziesz musiał escepować \"
4. Nie wiem jaka jest logika biznesowa, ale zazwyczaj nie
  • Odpowiedz
@Kamishimi:
1. Dalej nie widzę sensu wydzielanai osobnej klasy

new RegisterRequest("New", "new@mail.com", "Password#3");
to nie jest jakaś skomplikowana logika którą należy wydzielić, tylko integralna część testu
2. Jak już chcesz coś wydzielac to raczej
  • Odpowiedz
Cześć,
bawię się trochę w refactor testów w celu zwiększenia ich czytelności. Miałbym dwa pytania, zobrazujmy sobie je na przykładzie.
Oto klasa którą testuję:

@Component
class CookieDeleterImpl implements CookieDeleter
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach