// τροποποιεί την τρέχουσα κατάσταση -> setPhotos([...photos, photo]); // δεν θα δει αλλαγές // τροποποιεί τη μεταβλητή // χωρίς κλειδί
ERP Consultant
Πώς είναι δομημένη η ροή εργασίας Git στο έργο; Ποια κλαδιά χρησιμοποιούνται;
Τι να κάνετε αν ένας φάκελος δεν έχει πρόσβαση ανάγνωσης κατά την αναδρομική περιήγηση;
Ποια είναι η διαφορά μεταξύ μετοχών και ομολόγων;
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; } }
Πείτε μας για την εμπειρία και τον ρόλο σας στα τελευταία έργα, την τεχνολογική στοίβα
Τι συμβαίνει αν δύο υπηρεσίες προσπαθούν ταυτόχρονα να γράψουν μια εγγραφή στη βάση δεδομένων;
Ένα από τα υπηρεσίες στη σειρά αιτημάτων σταμάτησε να απαντά. Πώς θα λύσετε το πρόβλημα βήμα προς βήμα;
Τι είναι ένα συμβόλαιο μελλοντικής εκπλήρωσης ως χρηματοοικονομικό εργαλείο;
Γράψτε μια λειτουργία 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"}
Πώς να γράψετε σωστά τις συντομογραφίες στην ονοματοδοτική σημείωση στο Go;
Ποια διαδρομή χρησιμοποιούμε αν βρούμε έναν κατάλογο κατά τη διάρκεια μιας αναδρομικής περιήγησης;
Ποια antipattern γνωρίζετε στην αρχιτεκτονική μικροϋπηρεσιών;