Πώς λειτουργεί ένα κλείσιμο (closure) στη JavaScript; Εξηγήστε το με ένα παράδειγμα της μεταβλητής index και της λειτουργίας run στη λύση σας.
Frontend
Εξηγήστε πώς το Promise.all περιμένει την ολοκλήρωση όλων των αιτημάτων στη λύση σας με αναδρομή. Γιατί η τρέχουσα υλοποίηση μπορεί να επιστρέψει μερικό αποτέλεσμα;
Πες μου περισσότερα για το έργο στο Цифриум: σε ποια modules ήταν υπεύθυνοι, πώς ήταν δομημένη η λειτουργία — πού βρίσκονταν τα endpoints, μοντέλα, επιχειρηματική λογική, συνδρομές;
Χρησιμοποιήσατε FSD (Feature-Sliced Design) σε ένα έργο; Πώς γράψατε δείγματα και εγγραφές σε γεγονότα στο Effector κατά τη χρήση του FSD;
Πώς κατανοείτε την επιλογή της αρχιτεκτονικής; Πώς διακρίνετε τα πλεονεκτήματα και τα μειονεκτήματα μεταξύ διαφορετικών προσεγγίσεων;
Πώς λειτουργεί το Array.from; Τι δέχεται ως επιχειρήματα;
/** * Υλοποιήστε τη λειτουργία που θα εκτελεί ένα callback με τα δεδομένα * και θα επιστρέφει έναν πίνακα απαντήσεων Response[]. * Η λύση θα πρέπει να εκτελεί όλες τις αιτήσεις παράλληλα * αλλά όχι περισσότερο από [limit] αιτήσεις μπορούν να εκτελεστούν ταυτόχρονα. * Ο στόχος είναι να ελαχιστοποιηθεί ο συνολικός χρόνος εκτέλεσης. */ type Props<RequestData, Response> = { callback: (args: RequestData) => Promise<Response>; data: Array<RequestData>; limit: number; }; export async function runWithLimit<RequestData, Response>({ callback, data, limit, }: Props<RequestData, Response>): Promise<Response[]> { // ΑΡΧΗ ΛΥΣΗΣ ΕΔΩ if (limit < 1 || data.length === 0) { return Promise.resolve([]); } if (limit >= data.length) { return Promise.all(data.map(callback)); } const result: Response[] = new Array(data.length); let index = 0; const run = async () => { if (index >= data.length) return; const elem = data[index]; try { result[index] = await callback(elem); } catch (err) { result[index] = (err) as Response; // διαχείριση σφάλματος } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Βελτιστοποίηση κατασκευής: σε τι αφορούσε; Ποιες άλλες προσεγγίσεις γνωρίζετε για τη βελτιστοποίηση του μεγέθους του bundle;
Τι είναι το code splitting και πώς λειτουργεί;
Πείτε μου για τον εαυτό σας και την εργασιακή σας εμπειρία