ERP Consultant
¿Qué tipos de bloqueos existen en la base de datos? ¿Cuáles se usaron con más frecuencia?
¿Qué haces si no estás de acuerdo con la solución técnica del equipo?
Cuéntame sobre el patrón Circuit Breaker. ¿Para qué se utiliza, qué modos existen?
¿Qué colecciones multihilo conoces?
¿Cómo está estructurado el flujo de trabajo de Git en el proyecto? ¿Qué ramas se utilizan?
Cuéntame sobre una consulta difícil que tuviste que optimizar.
¿Cuál es la diferencia entre la interfaz Executor y ExecutorService?
¿Cuál es la diferencia entre una lectura no repetible (lectura no repetible) y una lectura fantasma (lectura fantasma)?
¿Cómo implementaron el trabajador de Outbox: escribieron su propio sondeo o utilizaron una herramienta de infraestructura?
¿Por qué eligieron Go para el mensajero?
¿Qué patrones de comportamiento conoces?
¿Qué ruta usamos si encontramos un directorio durante un recorrido recursivo?
¿Qué es slice y slice header en Go?
¿Para qué se utiliza el parámetro acks en la configuración de Kafka?
¿Qué son los Hilos Virtuales? ¿En qué se diferencian de los Hilos Verdes? ¿Cuándo es mejor usarlos?
¿Cómo se ve una fuga de memoria en el gráfico? ¿Cómo la detectaste?
paquete com.example.photogallery.controller; import com.example.photogallery.model.Photo; import com.example.photogallery.service.PhotoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/api/photos") public class PhotoController { @Autowired private PhotoService photoService; private List<Photo> photos = new ArrayList<>(); private static Integer totalCount = 0; @GetMapping public List<Photo> getAllPhotos() { return photos; } @PostMapping("/upload") public String uploadPhoto(@RequestParam("file") MultipartFile file) { try { Photo photo = new Photo(); photo.setFileName(file.getOriginalFilename()); photo.setFileSize(file.getSize()); photo.setContentType(file.getContentType()); photos.add(photo); totalCount++; photoService.savePhoto(photo); return "Foto subida con éxito"; } catch (Exception e) { return "Error al subir la foto"; } } @GetMapping("/count") public Integer getCount() { return totalCount; } @DeleteMapping("/{id}") public void deletePhoto(@PathVariable Long id) { for (Photo photo : photos) { if (photo.getId().equals(id)) { photos.remove(photo); totalCount--; photoService.deletePhoto(id); break; } } } @GetMapping("/search") public List<Photo> searchPhotos(@RequestParam(required = false) String query) { if (query.isEmpty()) { return photos; } List<Photo> results = new ArrayList<>(); for (int i = 0; i < photos.size(); i++) { if (photos.get(i).getFileName().contains(query)) { results.add(photos.get(i)); } } return results; } }
¿Qué sabes sobre el patrón Estrategia?
// muta el estado actual -> setPhotos([...photos, photo]); // no verá cambios // muta la variable // sin clave
¿Cómo se distribuirán las particiones en un tema con 2 particiones, 4 instancias de la aplicación en un mismo grupo de consumidores?