Java
Qual è stata la ragione per cercare un nuovo lavoro?
Quanto siete pronti a uscire in base ai tempi di transizione?
Può raccontare cosa faceva nell'ultimo lavoro e perché ha deciso di andarsene?
Analizza le differenze di prestazioni e utilizzo della memoria tra l'uso di int[] e Integer[] in Java, soprattutto nel contesto del frammento di codice fornito: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ```
Qual era il carico sul sistema al momento di questo incidente?
Parla dell'API Stream: tipi di operazioni, differenza tra map e flatMap
Cos'è DocumentType alla riga 15 e a cosa serve?
Cosa succede se salti sul tetto di un treno in movimento (200 km/h)?
Hai iniziato a lavorare nel 2020 in 'Sistemi di Trasporto Automatizzati'; avevi 17 anni?
Parlami di te: cosa stai cercando attualmente, l'ultimo posto di lavoro, progetti di interesse, attività di ricerca e processi paralleli.
Cosa vorresti fare nel tuo nuovo ambiente? Cosa significa per te partecipare alle decisioni architettoniche?
Come viene garantita l'integrità delle transazioni nel passaggio da monolito a microservizi?
È possibile utilizzare l'annotazione @Transactional nel metodo ExampleService::handle per garantire la coerenza? @Component @RequiredArgsConstructor public class ExampleService { private final OrderDao orderDao; private final DeliveryService deliveryService; @Transactional public void handle(long orderId) { orderDao.delete(orderId); deliveryService.cancelDelivery(orderId); } } - Sì, in caso di errore, le modifiche nel database verranno annullate - No, l'utente non saprà che l'ordine non è stato eliminato - No, potrebbero verificarsi perdite di memoria nel livello del client HTTP - No, potrebbero verificarsi timeout nel livello di accesso al database
Quali problemi possono sorgere con un carico elevato (decine di milioni di richieste)? Come scalare la soluzione?
[nome] ha chiesto: Se scrivo un messaggio in un topic Kafka, a quante partizioni arriverà?
Hai lavorato con il multithreading? Cosa hai usato?
Quali sono i livelli di isolamento nelle transazioni Kafka?
/** * == FT == * Il servizio di elaborazione degli ordini riceve un ordine per l'elaborazione tramite l'API Rest. * L'elaborazione è la seguente: * - Verificare la disponibilità del prodotto in magazzino (chiamata a un servizio esterno via REST/HTTP). Se il prodotto non è disponibile, l'elaborazione dell'ordine si interrompe. * - Salvare l'ordine nel database degli ordini * - Avviare l'elaborazione successiva dell'ordine (Processing, chiamata a un servizio esterno via REST/HTTP) * - Iniziare le notifiche sul nuovo ordine (Notification, chiamata a un servizio esterno via REST/HTTP) * * == NOTA == * - l'elaborazione deve essere tale che se il salvataggio dell'ordine nel database fallisce, non si deve avviare l'elaborazione (processing) né le notifiche (notification) * - usare un identificatore dell'ordine per la correlazione dei log * - monitorare le metriche 1) numero di ordini accettati 2) numero di ordini elaborati con successo * - il servizio deve poter elaborare fino a 100 ordini al secondo */
[nome] ha chiesto: E tu, dove ti trovi, a Mosca?
Come funziona la pulizia della memoria in Rust (dato che non c'è un garbage collector)?