// muta el estado actual -> setPhotos([...photos, photo]); // no verá cambios // muta la variable // sin clave
ERP Consultant
¿Cómo está estructurado el flujo de trabajo de Git en el proyecto? ¿Qué ramas se utilizan?
¿Qué hacer si una carpeta no tiene acceso de lectura durante una exploración recursiva?
¿Cuál es la diferencia entre acciones y bonos?
Cuéntenos sobre su experiencia y rol en los últimos proyectos, la pila de tecnologías
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é sucede si dos servicios intentan escribir en la misma entrada de la base de datos al mismo tiempo?
Uno de los servicios en la cadena de solicitudes dejó de responder. ¿Cómo resolverá el problema paso a paso?
¿Qué es un futuro como instrumento financiero?
Escriba una función FindFilesByExtension que busque recursivamente archivos en un directorio y devuelva un segmento de rutas absolutas a archivos ([]string) que cumplan con las condiciones: extensión del archivo == targetExtension (sin distinguir mayúsculas y minúsculas) tamaño del archivo > minSizeKB La función debe recorrer todos los subdirectorios anidados. Ejemplo de estructura de directorio: /projects/ ├── doc.pdf (2048 KB) ├── report.docx (512 KB) ├── src/ │ ├── Main.go (2 KB) │ ├── Utils.go (5 KB) └── images/ └── photo.jpg (3072 KB) Ejemplos de comprobaciones: files1, _ := FindFilesByExtension("/projects", "pdf", 1000) // files1 == []string{"/projects/doc.pdf"} files2, _ := FindFilesByExtension("/projects", "go", 3) // files2 == []string{"/projects/src/Utils.go"} files3, _ := FindFilesByExtension("/projects", "jpg", 2000) // files3 == []string{"/projects/images/photo.jpg"}
¿Qué ruta usamos si encontramos un directorio durante un recorrido recursivo?
¿Cómo escribir correctamente las abreviaturas en las notaciones de nombres en Go?
¿Qué antipatrones conoces en la arquitectura de microservicios?