// modifică starea actuală -> setPhotos([...photos, photo]); // nu va vedea schimbări // modifică variabila // fără cheie
ERP Consultant
Cum este structurat fluxul de lucru Git în proiect? Ce ramuri sunt utilizate?
Ce să faci dacă un folder nu are acces de citire în timpul unei scanări recursive?
Care este diferența dintre acțiuni și obligațiuni?
Povestiți despre experiența și rolul dumneavoastră în ultimele proiecte, stiva de tehnologii
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 carregada com sucesso"; } catch (Exception e) { return "Erro ao carregar a 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; } }
Ce se întâmplă dacă două servicii încearcă să scrie simultan o înregistrare în baza de date?
Unul dintre serviciile din lanțul de solicitări a încetat să răspundă. Cum veți rezolva problema pas cu pas?
Ce este un futures ca instrument financiar?
Scrieți o funcție FindFilesByExtension care caută recursiv fișiere într-un director și returnează un segment de căi absolute către fișiere ([]string) care îndeplinesc condițiile: extensia fișierului == targetExtension (fără a ține cont de majuscule/minuscule) dimensiunea fișierului > minSizeKB Funcția trebuie să parcurgă toate subdirectoarele înglobate. Exemplu de structură de director: /projects/ ├── doc.pdf (2048 KB) ├── report.docx (512 KB) ├── src/ │ ├── Main.go (2 KB) │ ├── Utils.go (5 KB) └── images/ └── photo.jpg (3072 KB) Exemple de verificări: 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"}
Ce cale folosim dacă găsim un director în timpul unei parcurgeri recursive?
Cum să scrii corect abrevierea în notația de numire în Go?
Ce antipattern-uri cunoști în arhitectura microserviciilor?