Frontend
Σε ποιο χρονικό διάστημα είναι έτοιμοι να ξεκινήσουν την εργασία;
Γιατί στο React δεν μπορείς να αλλάξεις απευθείας το state; Για παράδειγμα, state.count = 5.
// Δημιουργήστε έναν τύπο που περιέχει τα ίδια πεδία με το Delivery, // αλλά όλα τα πεδία είναι προαιρετικά (μπορούν να έχουν την τιμή undefined) και δεν μπορούν να αλλάξουν τις τιμές τους.
Πείτε μας για τη χρήση του NX στο έργο και γιατί επιλέχθηκε
Μιλήστε μας για τη θεμελιώδη διαφορά μεταξύ Angular ως πλαίσιο και React ως βιβλιοθήκη.
Ποια προσέγγιση χρησιμοποιεί το React: επιτακτική ή δηλωτική; Ποια είναι η διαφορά;
Πώς λειτουργεί η αποδόμηση των αντιδραστικών τιμών στο Vue και πώς διατηρείται η αντιδραστικότητα κατά την αποδόμηση;
Πες μου για την επαγγελματική σου εμπειρία: σε ποιες ομάδες εργάστηκες, ποιες θέσεις κατείχες, ποια περιστατικά σχετίζονταν με το σχεδιασμό αρχιτεκτονικής και τη λήψη τεχνικών αποφάσεων;
Πείτε μας για την εμπειρία σας στην ανασκόπηση κώδικα. Σε τι εστιάζατε την προσοχή σας; Ποιες ήταν οι πιο συχνές λάθη που συναντήσατε;
Πώς μπορεί να λυθεί η εργασία withTimeout με εναλλακτικό τρόπο μέσω Promise.race; Τι είναι το Promise.race, πώς διαφέρει από το Promise.all;
Τι είναι οι επιθέσεις XSS;
Ποιος είναι ο σκοπός των portals στο React;
Γνώση βάσεων δεδομένων και εργασίας με API
Τι είναι το reconciliation στο React;
Μίλησε για το Promise: καταστάσεις, στατικές μέθοδοι (all, allSettled, any, race).
Λήψη δεδομένων σχετικά με βιβλία και τους συγγραφείς τους. Εμφάνιση των δεδομένων σε μια σελιδοποιημένη λίστα με 10 βιβλία ανά σελίδα σε μορφή: <τίτλος βιβλίου> - <συγγραφέας> api: [link] προδιαγραφή: [link] αν το swagger δεν ανοίγει, στη ρίζα sber-c55-books-mock-1.0.1-oas3.1-resolved.yaml const PAGE_SIZE = 10; export default function App() { const [books, setBooks] = useState([]) const [page, setPage] = useState(1); const [loading, setLoading] = useState(false) useEffect(() => { setLoading(true); fetch('[link]') .then((res) => res.json()) .then((data) => { setBooks(data); setLoading(false); }) .catch(() => setLoading(false)); }, [page]); const totalPage = Math.ceil(books.length / PAGE_SIZE); const start = (page - 1) * PAGE_SIZE; const currentBooks = books.slice(start, start + PAGE_SIZE); return ( <div className="App"> {loading && <p>Φόρτωση...</p>} <ul> {currentBooks.map((book, index) => ( <li key={index}>{book.title} - {book.author}</li> ))} </ul> <div> <button disabled={page === 1} onClick={() => setPage(page - 1)}> Προηγούμενο </button> <button disabled={page === totalPage} onClick={() => setPage(page + 1)}> Επόμενο </button> </div> </div> ); } Διορθώστε τα σφάλματα και υλοποιήστε την σελιδοποιημένη εμφάνιση μιας λίστας βιβλίων με συγγραφείς.
Τι σε ενδιαφέρει περισσότερο: να βελτιώνεις υπάρχοντα έργα, να δημιουργείς νέες λειτουργίες, να συνεργάζεσαι με το backend ή να ασχολείσαι με τη βελτιστοποίηση;
Εξήγησε πώς λειτουργεί το Event Loop — τι είναι οι μικροεργασίες, οι μακροεργασίες και η προτεραιοποίησή τους.
Υπάρχει ένα συστατικό React με ένα input. Πατάμε το κουμπί «Εμφάνιση input» και εμφανίζεται το input, αλλά δεν λαμβάνει εστίαση. Πρέπει να διορθωθεί αυτό. Πρότεινε όσο το δυνατόν περισσότερες λύσεις.
Πώς θα λειτουργεί η αναπαραγωγή της βάσης δεδομένων (master-slave); Πώς θα κατευθύνει ο load balancer τα αιτήματα σε διαφορετικούς διακομιστές με διαφορετικές βάσεις δεδομένων;