// mutira trenutno stanje -> setPhotos([...photos, photo]); // ne vidi promene // mutira promenljivu // bez ključa
ERP Consultant
Kako je organizovan Git workflow na projektu? Koje grane se koriste?
Šta uraditi ako folder nema pristup za čitanje tokom rekurzivnog obilaska?
Koja je razlika između akcija i obveznica?
Ispričajte o svom iskustvu i ulozi u poslednjim projektima, tehnologiji stack
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 "Фотография успешно загружена"; } catch (Exception e) { return "Ошибка при загрузке фотографии"; } } @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; } }
Šta će se desiti ako dva servisa istovremeno pokušaju da upišu istu zapis u bazu podataka?
Напишите функцију FindFilesByExtension која рекурзивно тражи датотеке у директоријуму и враћа сегмент апсолутних путева до датотека ([]string) који испуњавају следеће услове: екстензија датотеке == targetExtension (без обзира на велика/мала слова) величина датотеке > minSizeKB Функција треба да обиђе све унутрашње поддиректоријуме. Пример структуре директоријума: /projects/ ├── doc.pdf (2048 KB) ├── report.docx (512 KB) ├── src/ │ ├── Main.go (2 KB) │ ├── Utils.go (5 KB) └── images/ └── photo.jpg (3072 KB) Примери провера: 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"}
Šta je futures kao finansijski instrument?
Jedna od usluga u lancu zahteva prestala da odgovara. Kako ćete rešiti problem korak po korak?
Koji put koristimo ako tokom rekurzivnog obilaska pronađemo direktorijum?
Kako pravilno pisati skraćenice u notacijama imenovanja u Go?
Koje antipatternove poznajete u arhitekturi mikroservisa?