Sobes.tech

Από αυτά τα εισιτήρια μπορεί να κατασκευαστεί μια μοναδική συνεχής διαδρομή. Δεν υπάρχουν βρόχοι ή επαναλήψεις στη διαδρομή. Πρέπει να γράψετε ένα πρόγραμμα που επιστρέφει αυτά τα ίδια αντικείμενα εισιτηρίων με τη σειρά της διαδρομής. ```javascript function getRoute(tickets = []) { const cities = new Map(); for (const ticket of tickets) { cities.set(ticket.from, ticket); } const result = []; let currentCity = startcity; while (cities.has(currentCity)) { const next = cities.get(currentCity); result.push(next); currentCity = next.to; } return result; } console.clear() console.log(getRoute([ { from: 'London', to: 'Moscow' }, { from: 'NY', to: 'London' }, { from: 'Moscow', to: 'Spb' }, ])); ```

244

Έχετε καθορίσει το φορτίο του συστήματος σε RPS; Ποιο ήταν το ποσό; Έχετε εμπειρία από τεχνικά στάδια σε μορφή live-coding;

224

Έχετε ασχοληθεί ποτέ με την ασφάλεια της εφαρμογής, του κώδικα ή της υπηρεσίας;

201

Η εφαρμογή συνομιλίας μας πρέπει να εμφανίζει τα νέα μηνύματα που λαμβάνονται από τον διακομιστή όσο το δυνατόν πιο γρήγορα. Το μήνυμα έχει τη μορφή: interface Message { id: number text: string } Το id του πρώτου μηνύματος είναι 1, και το id κάθε επόμενου μηνύματος είναι 1 μεγαλύτερο από το προηγούμενο. Πρέπει να εμφανίζουμε τα μηνύματα με τη σωστή σειρά, αλλά ο διακομιστής δεν εγγυάται τη σωστή σειρά των μηνυμάτων που αποστέλλονται στην εφαρμογή μας. Χρονοδιάγραμμα: // (έρχεται) [τηλέφωνο] // (ζωγραφίζουμε) . 1 2 3 . . 4 5 6 7 8 Για να εμφανίσετε τα μηνύματα, χρησιμοποιήστε τη λειτουργία render: render(message)

192

Πες μας για την εμπειρία σου με το Node.js, χρησιμοποιώντας ως παράδειγμα κάποιο έργο που έχεις αναπτύξει, τι ακριβώς ανέπτυξες σε αυτό.

164

/** * Πρέπει να γράψετε μια ασύγχρονη λειτουργία, * που θα "κοιμάται" τον καθορισμένο αριθμό χιλιοστών δευτερολέπτου, * και στη συνέχεια θα ολοκληρώνεται με επιτυχία */

159

Γενική κατανόηση του JavaScript: μεταβίβαση παραμέτρων, ασυγχρονικότητα, πρωτότυπα, διαχείριση σφαλμάτων

157

// Είναι απαραίτητο να ελέγξετε τη λύση του προβλήματος σε δύο υπηρεσίες καλώντας: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise<boolean>; // // - Αν και οι δύο αιτήσεις επιστρέψουν true - εμφανίστε success στο console.log() // - Αν τουλάχιστον μία επιστρέψει false - εμφανίστε fail στο console.log() // - Αν καμία δεν απαντήσει - εμφανίστε error στο console.log() // - Αν κάποια απαντήσει περισσότερο από 1 δευτερόλεπτο - εμφανίστε timeout στο console.log()

154

Δύο τμήματα κώδικα δίνονται. Είναι απαραίτητο να γράψετε το αποτέλεσμα κάθε console.log. var n = 1; function f(n) { n = 3; } f(n); console.log(n); // ?? // ------------------ var obj = { a: 1 }; function f1(o) { o.a = 5; } f1(obj); console.log(obj); // ?? // ------------------ var obj = { a: 1 }; function f2(o) { o = { hello: 1 }; } f2(obj); console.log(obj); // ??

143

/** * Η λειτουργία `asyncAuth(callback)` δέχεται ένα callback, στο οποίο * μπορεί να περαστεί ένα σφάλμα (ως πρώτο όρισμα) και δεδομένα * από το backend (ως δεύτερο όρισμα). * asyncAuth((error, data) => {}); * * Πρέπει να υλοποιήσετε τη λειτουργία `auth()`, * που καλεί το `asyncAuth()`, αλλά επιστρέφει μια υπόσχεση. * * @returns {Promise} */ export function auth() { // asyncAuth((error, data) => {}); }

141

Πείτε μας για την εργασιακή σας εμπειρία στην Atvint: έργα, ευθύνες, ομάδα, διαδικασίες.

137

/** * Η λειτουργία `tryAuth()` χρησιμοποιεί το `auth()` και, σε περίπτωση σφάλματος, * πραγματοποιεί N επιπλέον προσπάθειες. * Αν όλες οι προσπάθειες αποτύχουν, ρίχνει το τελευταίο σφάλμα. * * @returns {Promise} */ export function tryAuth(n) { }

136

Έχετε ασχοληθεί με την ανάπτυξη εφαρμογών, CI/CD, ρύθμιση;

135

Όσον αφορά τους ρόλους, θα ήθελες να πας προς τη διαχείριση ή προς τον τεχνικό τομέα;

133

Πώς ήταν δομημένη η αλληλεπίδρασή σας στο τελευταίο έργο; Μέσω Agile ή με κάποιον άλλο τρόπο;

133

/** * Ένα πίνακας σημείων με ακέραιες συντεταγμένες (x, y) δίνεται. * Να προσδιοριστεί αν υπάρχει μια κάθετη γραμμή, * που διαιρεί τα σημεία σε δύο συμμετρικά σύνολα σχετικά με αυτήν. * Σημείωση: Για ευκολία, το σημείο μπορεί να αναπαριστάται όχι ως πίνακας [x, y], αλλά ως αντικείμενο {x, y}. */ isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0], [4, 0]]) // true isVertSym([[0, 0], [0, 0], [1, 1], [2, 2], [3, 1], [4, 0]]) // false isVertSym([]) // true isVertSym([[0, 0]]) // true isVertSym([[0, 0], [10, 0]]) // true isVertSym([[0, 0], [11, 1]]) // false isVertSym([[0, 0], [1, 0], [3, 0]]) // false function isVertSym(list) { // κώδικας εδώ }

127

Πες μου για την εμπειρία σου στη συγγραφή δοκιμών

126

// Είναι απαραίτητο να υλοποιηθεί η μέθοδος groupBy, που επεκτείνει τις τυπικές μεθόδους των πινάκων. // Η μέθοδος πρέπει να επιστρέφει μια ομαδοποιημένη έκδοση του πίνακα – ένα αντικείμενο, // στο οποίο κάθε κλειδί είναι το αποτέλεσμα της εκτέλεσης της δοθείσας συνάρτησης fn(arr[i]), // και κάθε τιμή είναι ένας πίνακας που περιέχει όλα τα στοιχεία του αρχικού πίνακα με αυτό το κλειδί.

124

Έχεις εμπειρία στο να σχεδιάζεις μόνος σου την αρχιτεκτονική μιας υπηρεσίας ή ενός μέρους της;

121
/2