Stai continuando a imparare nuove tecnologie e competenze ora?
Java
Quali metodi hai utilizzato per migliorare l'efficienza dell'interazione con il database nei tuoi progetti?
Hai lavorato con Kubernetes nel tuo ultimo progetto?
Hai esperienza nella programmazione in Python?
Qual è il ruolo dell'annotazione @Repository nel livello dei dati della tua applicazione?
In cosa si differenziano i processi di consegna e distribuzione di un prodotto software?
Cosa succede al messaggio in Kafka se durante la sua elaborazione viene sollevata un'eccezione (ma l'applicazione non si blocca)?
Come viene effettuata la dipendenza tramite il metodo setter nella programmazione orientata agli oggetti?
Qual è il ruolo della parola chiave volatile nella gestione della multithreading in Java?
Quante persone c'erano nel tuo team e quali erano i loro ruoli?
Puoi spiegare cos'è un proxy Hibernate e come viene utilizzato in ORM?
Parlami del garbage collector in Java.
Perché usare la riflessione per accedere alle proprietà private degli oggetti?
Come scegliere i campi da indicizzare in una tabella del database?
Quali metodi vengono utilizzati per scambiare dati tra microservizi nell'architettura?
Come si può rimuovere una dipendenza di una libreria nel sistema di build Maven?
Implementare il trasferimento di fondi tra due conti. Si consideri che questa è una soluzione di produzione Parametri di input: @param fromAccountId identificativo unico dell'utente che trasferisce fondi @param toAccountId identificativo unico dell'utente a cui vengono trasferiti i fondi @param amount importo del trasferimento. Numero positivo public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("L'importo deve essere > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("L'account non può essere lo stesso"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Account non trovato")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Account non trovato")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo insufficiente"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }
Il servizio può funzionare correttamente in caso di guasto della connessione al database?
Come gestisce HashMap le situazioni in cui vengono aggiunti oggetti con chiavi uguali?
Quali tipi di dati o valori non possono essere usati come valore per una chiave secondaria in una tabella di database?