Za 2 tygodnie kończmy mi się trzymiesięczny staż jako junior Java dev i dostałem propozycje przedłużenia z takimi warunkami: podwyżka do 30 zł brutto/h (na stażu miałem 28), umowa zlecenie na czas nieokreślony, miesiąć wypowiedzenia. Co o tym sądzicie? Firma i projekt w miare spoko.
#pracait #programista15k #programowanie #java
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Z nieskrywaną dumą przedstawiam Wam kompletnie przebudowane Programistyczne Bingo w wersji 8.0. Był to naprawdę świetny projekt w swoich założeniach, ale jednak leżała w nim szata graficzna. Postanowiłem je przebudować całkowicie od początku. Co się zmieniło w tej odsłonie?

1. Totalnie nowa szata graficzna. Jest to teraz kwadrat o boku 7x7 pól, każde pole ma 300x300 pikseli i wygląda to teraz jak prawdziwa karta do bingo
2. Ujednoliciłem czcionkę i zastosowałem jej dwa rozmiary
S.....n - Z nieskrywaną dumą przedstawiam Wam kompletnie przebudowane Programistyczne...

źródło: Programistyczne Bingo 8.0

Pobierz
  • 35
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

U czu może chodzić se, bo jusz mi nawet chat gpt się zapętlił na tym problemie?

3 screeny są, Kotlin + Groovy + Spring.
1. RestController

@RestController
a.....e - U czu może chodzić se, bo jusz mi nawet chat gpt się zapętlił na tym proble...

źródło: gpt wysiadl

Pobierz
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć, potrzebuję porady. Podczas logowania tworzę w bazie danych sesję użytkownika. Chcę napisać test dla logout, w którym sprawdzę, czy po wylogowaniu sesja została usunięta. Mam takie dwie propozycje.

1. Pierwsza:

@test
void whenLogoutSuccess_DeleteSession() throws Exception
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kamishimi: 1.

2. to dobry przykład ale na test integracyjny, w którym sprawdzasz czy przejście całego procesu login -> logout działa poprawnie.

W 1. wychodzisz z założenia że metoda logoutHelper.loginAndGetCookie(); działa prawidłowo, co powinno być sprawdzone testami tej metody w klasie LogoutHelperTest czy jakkolwiek się tam nazywa.
  • Odpowiedz
Ogólnie w given, lepiej nie używać assertów, ale czasami jednak trzeba się upewnić że coś daje efekt. Dlatego wolę 2 przykład. Ogólnie też używasz i api i wnętrzności apki (session/tokenGenerator). Jak się da, to lepiej zrobić wszystko przez api

-login
-sprawdzenie sesji #1 (używając api)
-logout
-sprawdzenie sesji #2
  • Odpowiedz
#java #mongodb #nosql #programowanie
Mirki, pierwszy raz pracuję z bazą noSql i zastanawiam się jak powinny wyglądać encje. Skoro bazy te nie są nastawione na relacje to jeżeli mam wątki czatu i wiadomości czatu to czy wątki czatu powinny przechowywać listę wiadomości (1 kolekcja), czy może mieć 2 kolekcje: wątki czatu i wiadomość czatu z id wątków. W relacyjnej bazie danych sprawa jest prosta -
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

1 kolekcja:

2 kolekcje:


@Patres: masz na odwrót

Co do podziału to jestem za dwiema odzielnnymi kolekcjami, bo wyobraż sobie wątek na tysiące wiadomości. Updatowanie jednego obiektu w kolekcji jest wolne i generuje problemy związane
  • Odpowiedz
@Krolik: no nie wiem. W VSC przynajmniej nie muszę wyłączać IDE po dodaniu zależności w cargo, czego nie mogę powiedzieć o RustRover bo tam, nawet po przebudowaniu, muszę robić reset aplikacji żeby łaskawie ogarnął xd
  • 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ść,
mam taką klasę pomocniczą do testów, która odpytuje DB.

@Component
public class DatabaseHelper {
private final DataSource dataSource;
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Kamishimi: Jeden rabin powie tak, a inny powie nie. Moim zdaniem aby zachować SRP ta klasa powinna nazywać się UserDatabaseHelper albo UserRepository. W przeciwnym razie będą do niej trafiać wszystkie funkcjonalności bazodanowe, bo nazwa DatabaseHelper jest bardzo pojemna i w dużym projekcie skończysz z ogromna klasą, która zwraca info o użytkownikach i wszystkim innym, co masz w projekcie.

Oczywiście, można dywagować czy UserRepository też nie jest za dużym konceptem.
  • Odpowiedz
@PiotrX1: W google wpisujesz frazę "koszulki z nadrukiem". Przy zamówieniu podajesz literki w tej samej kolejności co na zdjęciu żeby nie straciło sensu i dalej to już formalności jak przy każdym zakupie. Mam nadzieję, że pomogłem ;-)
  • Odpowiedz