// mění aktuální stav -> setPhotos([...photos, photo]); // nevidí změny // mění proměnnou // bez klíče
ERP Consultant
Jak je veřejný pracovní tok Git ve projektu? Jaké větve se používají?
Co dělat, pokud složka nemá přístup ke čtení při rekurzivním průchodu?
Jaký je rozdíl mezi akciemi a dluhopisy?
Povězte o svých zkušenostech a roli v posledních projektech, technologickém stacku
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 "Fotografie úspěšně nahrána"; } catch (Exception e) { return "Chyba při nahrávání fotografie"; } } @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; } }
Co se stane, pokud se dva služby pokusí současně zapsat stejný záznam do databáze?
Jakou cestu použijeme, pokud při rekurzivním průchodu najdeme adresář?
Napište funkci FindFilesByExtension, která rekurzivně hledá soubory v adresáři a vrací segment absolutních cest k souborům ([]string), které splňují následující podmínky: přípona souboru == targetExtension (bez ohledu na velikost písmen) velikost souboru > minSizeKB Funkce by měla projít všechny vnořené podsložky. Příklad struktury adresáře: /projects/ ├── doc.pdf (2048 KB) ├── report.docx (512 KB) ├── src/ │ ├── Main.go (2 KB) │ ├── Utils.go (5 KB) └── images/ └── photo.jpg (3072 KB) Příklady kontrol: 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"}
Jak správně psát zkratky v notacích pojmenování v Go?
Co je to futures jako finanční nástroj?
Jaké antipatterny znáte v architektuře mikroservisů?
Jeden ze služeb v řetězci požadavků přestal odpovídat. Jak budete problém řešit krok za krokem?