// modifica lo stato attuale -> setPhotos([...photos, photo]); // non vedrà cambiamenti // modifica la variabile // nessuna chiave
ERP Consultant
Come è strutturato il flusso di lavoro di Git nel progetto? Quali branch vengono utilizzati?
Cosa fare se una cartella non ha accesso in lettura durante una scansione ricorsiva?
Qual è la differenza tra azioni e obbligazioni?
Parla della tua esperienza e ruolo negli ultimi progetti, lo stack tecnologico
package 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 caricata con successo"; } catch (Exception e) { return "Errore durante il caricamento della 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; } }
Cosa succede se due servizi cercano di scrivere contemporaneamente in una stessa registrazione del database?
Uno dei servizi nella catena di richieste ha smesso di rispondere. Come risolverai il problema passo dopo passo?
Cos'è un future come strumento finanziario?
Scrivi una funzione FindFilesByExtension che cerca ricorsivamente i file in una directory e restituisce un segmento di percorsi assoluti ai file ([]string) che soddisfano le condizioni: estensione del file == targetExtension (senza considerare maiuscole/minuscole) dimensione del file > minSizeKB La funzione deve attraversare tutte le sottodirectory annidate. Esempio di struttura di directory: /projects/ ├── doc.pdf (2048 KB) ├── report.docx (512 KB) ├── src/ │ ├── Main.go (2 KB) │ ├── Utils.go (5 KB) └── images/ └── photo.jpg (3072 KB) Esempi di controlli: 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"}
Quale percorso usiamo se troviamo una directory durante una scansione ricorsiva?
Come scrivere correttamente le abbreviazioni nelle notazioni di denominazione in Go?
Quali antipattern conosci nell'architettura a microservizi?