Cum asiguri trimiterea fiabilă a unei facturi dacă un serviciu extern poate eșua?
Java
Ce se întâmplă dacă cacheService se prăbușește sau Redis returnează un timeout și cum se gestionează acest lucru?
Cum te simți în legătură cu scrierea testelor?
Ce probleme pot apărea la returnarea unei entități JPA din repository și cum să le evitați?
Ce garanții oferă o cheie externă într-o bază de date relațională? Se poate șterge înregistrarea părinte dacă există chei externe care o referențiază?
Problemă de multi-threading: programul se va bloca la transferurile între portofele? De ce?
Povesti-ne cum era distribuită sarcinile și luarea deciziilor arhitecturale în echipa ta?
Cum poți vedea interogările SQL pe care JPA/Hibernate le trimite către baza de date?
A avut review de cod în echipă?
Ce alte probleme există în cod? (SecurityContextHolder, date personale, calcule financiare)
Ce abordări trebuie utilizate pentru a crește eficiența operațiunilor de inserare a datelor în baza de date după implementarea indexurilor?
La restricție de cheie străină pentru ce este necesară? Nu se poate fără ea?
Spuneți-ne despre dvs. și experiența dvs.
Citiți codul, determinați ce va fi afișat la finalul execuției programului
De ce căutați un loc de muncă nou?
Ce garanții oferă volatile? Cu ce se deosebește de Atomic?
Povestiți mai detaliat cum ați optimizat procesarea mesajelor Kafka și apelurile RPC sincrone.
Oferiți un exemplu de sarcină de afaceri importantă sau integrare pe care ați realizat-o complet singur.
Citiți codul și numărați erorile ```java @Component public class AuthorSearchService { @Autowired private AuthorRepository authorRepository; @Autowired private StatisticsRepository statisticsRepository; private AlertRestClient arc = new AlertRestClient(); // În interogare poate fi atât o valoare completă, cât și doar o parte a numelui, de exemplu "Vadim Pavlo" sau "pavlo" @Transactional public List<Author> search(String query) { List<Author> authors = authorRepository.findByNameContainingIgnoreCase(query); Statistics s = statisticsRepository.findById(query).orElse(null); if (s == null) s = new Statistics(query); s.setNumbers(s.getNumbers() + 1); statisticsRepository.save(s); if (s.getNumbers() > 1000 && authors.size() > 1000) { System.out.println("căutare prea populară cu prea multe date, trimitere alertă..."); arc.send(query, s.getNumbers(), authors.size()); } return authors; } } @Entity @Data public class Author { @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "author") private List<Book> books; public Author(String name) { this.name = name; } } ```
Ce ai dori să faci în noul tău loc? Ce înseamnă pentru tine participarea la deciziile arhitecturale?