@Nofenak: Z tych dwóch wybrałbym Rust. Programistów jest relatywnie mało. Praca często w specyficznych branżach i technologiach. To razem sprawia, że stawki są lepsze. Poza tym to jest naprawdę narzędzie ogólnego przeznaczenia. Możesz w tym pisać naprawdę low-levelowy kod pod specyficzne wymagania. Kod jest natywny, nie masz garbage collectora, więc wydajność i latency są bardzo dobre, a nie musisz się męczyć jak w C.
Test sprawdzający usunięcie użytkownika:

@test
void whenUserExist_DeleteUser() {
User user = userBuilder.buildById(1).build();
userSaver.save(user);

delete.deleteUserById(1);
assertThat(userChecker.userExist(1)).isFalse();
}

Czy jeśli w teście jest widoczny zapis użytkownika userSaver.save(user);, to nie stanowi to problemu? Czy jakoś inaczej to zrobić?

#java
@Kamishimi: to zalezy jak to robisz generalnie powinienes testowac metode z serwisu, ktora uderza do repository.

Moim zdaniem mozesz uzyc uzyc metody save ale ladniej byloby to wrzucic w osobna metode np. createAndSaveUser i ja zawolac w tescie.

A to delete.deleteUserById to co to za gowno? To delete to serwis jest? Jesli tak to czym predzej zmieniaj nazwe na jakies userService
Mirki, mam aplikacje której potrzebuję użyć do mojej pracy i jest ona napisana w jave, ma rozszerzenie .jar. Mój laptop się #!$%@?ł i mam dostęp do lapka pożyczonego od uczelni i tutaj nie mam dostępu do admina i nie mogę pobrać sobie Javy. Jest jakiś inny sposób żeby odpalić ten program?

#programowanie #java
✨️ Obserwuj #mirkoanonim
Mirki chwale się bo dostałam swoją pierwszą pracę w IT dzięki bootcampowi! :) Do tej pory uczyłam się programowania samodzielnie, własnym siłami. Przez te 4 miesiące nauczyłam się całkiem sporo, jednak nie tyle, ile bym tak naprawdę chciała. W teorii udało mi się samodzielnie opanować HTML, CSS i podstawy JavaScript. No właśnie, w teorii.Na początku listopada pojawiła się w mojej głowie myśl – a gdyby tak zacząć kurs programowania?
Moi drodzi. Podliczyłem REALNE* oferty na justjoint.it dla technologii Java:
Wg justjoint IT jest: 904 ofert pracy.

Jak wiemy, JustJoinIT liczy ofertę pracy, mnożąc ją przez liczbę miast, do których zostało dołączone to ogłoszenie, przez co licznik na stronie pokazuje znacznie więcej ofert niż istnieją realnie.

I teraz dane prezentują sie tak:
Junior: 43 na stronie, 15 realne RÓŻNICA: 65%
Mid: 341 na stronie, 96 realne, RÓŻNICA: 72%
Senior: 482 na stronie,
@mirko_anonim: Chciałem znać opinie innych bo mam jeszcze inne koncepcje a Ty już się pultasz. A druga sprawa że z tymi Optionalami jest odwieczna walka i jeden rabin powie tak, a drugi inaczej. Poza tym ja robię w pracy pół Devops i pół Jave więc nie jestem typowym Crudziarzem co jest mistrzem jednego języka.
#java #programowanie #pracait

Potrzebuje pomocy/rozwiazania z jednym bledem w ide, groovy,maven. Stawiam, ze to gdzies od strony srodowiska jakis cp jest zle ustawiony czy cos. Zalezy mi na rozwiazaniu tego poniewaz nikt juz nie potrafi mi pomoc, ja sam sobie tez. Płacę blikiem 60-70 zł za rozwiazanie problemu, zapraszam priv..
#java
Mam pytanie. Posiadam taką klasę pomocniczą do testów:

@Component
public class SessionChecker {

private final DataSource dataSource;

public SessionChecker(DataSource dataSource) {
this.dataSource = dataSource;
}

public boolean checkExistence(String sessionId) {
try {
String query = "SELECT COUNT(*) FROM sessions WHERE session_id = ?";

try (Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(query)) {

statement.setString(1, sessionId);

ResultSet resultSet = statement.executeQuery();

return resultSet.next() && resultSet.getInt(1) > 0;
}
} catch (SQLException e) {
@Kamishimi: Jeżeli to jest klasa która będzie dostępna tylko w Twoim katalogu z testami, to pewnie może być. Jeżeli natomiast miałaby być dostępna w głównym kodzie no to tak średnio bo całkowicie tracisz type-safety w tym miejscu. W miejscu drugiego parametru można przekazywać wtedy dosłownie wszystko i kompilator się nie zająknie.

Zamiast tego na Twoim miejscu celowałbym w sygnaturę private boolean checkExistence(String query, PreparedStatement statement). Wtedy każda z publicznych metod
@Kamishimi: Może:

checkExistence(String query, Consumer<PreparedStatement> propertySetter) {
try (Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(query)) {
propertySetter.accept(statement);
ResultSet resultSet = statement.executeQuery();
return resultSet.next() && resultSet.getInt(1) > 0;
} catch (SQLException e) {
throw new RuntimeException("Error during checking existence: " + e.getMessage(), e);
}

public boolean userHasActiveSession(int userId) {
String query = "SELECT COUNT(*) FROM sessions WHERE user_id = ?";
return checkExistence(query, st -> st.setInt(1, userId));
}

public boolean sessionExist(String sessionId)
#programowanie #pracait #java
Mam w #!$%@? dziwny problem z testami jednostkowymi w groovy, odpalam jakikolwiek test i wywala mi atki blad. Robilem juz wszystko, cache, update ide do najnowszych, grzebalem w configu project structure tez wydaje sie byc okej. Ma ktos jakis pomysl co to moze byc? Dodawałem do poma rozne zaleznosci i bez zmian. Na masterze czy devie jest to samo, no ręce rozkladam juz po prostu (
staley - #programowanie #pracait #java
Mam w #!$%@? dziwny problem z testami jednostk...

źródło: Zrzut ekranu 2024-03-28 142919

Pobierz
✨️ 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 na
Dlaczego przy teście serwisu leci LazyInizializationException a przy teście kontrolera już nie i przechodzi normalnie mimo, że też korzysta z tego serwisu?

@test
void testService() {
var film = filmRepository.save(createFilm());
var hall = hallRepository.save(createHall());
screeningRepository.save(createScreening(film, hall));

screeningService.getAllScreenings();
}

@test
void testController() {
var film = filmRepository.save(createFilm());
var hall = hallRepository.save(createHall());
screeningRepository.save(createScreening(film, hall));

webTestClient
.get()
.uri("/public/screenings")
.exchange()
.expectStatus()
.isOk();
}

#java #programowanie #naukaprogramowania #programista15k
strzelam, że tutaj dlatego że tworzysz te obiekty na potrzebę testu a tam ich może nie być ale w sumie nie wiem bo widzę tylko wycinek kodu


@Smonk_Da_Wead: Mam dwie refleksje. Naprawdę używacie chat gpt żeby rozwiązywać takie problemy? Przecież ich rozwiązywane to najlepsza droga aby się rozwijać i zrozumieć jak działa stack technologiczny w którym pracujemy. Znalezienie przyczyny tego problemu da więcej wiedzy niż przeczytanie niejednej książki. W drugiej kwestii