Frontend
Qu'est-ce que l'opérateur as en TypeScript et quels sont ses avantages et inconvénients?
Parlez-moi des étapes critiques du rendu du navigateur
Avez-vous travaillé avec des approches architecturales telles que FSD (Feature-Sliced Design) ?
Comment résolvez-vous le problème d'optimisation du chargement des images pour différentes résolutions d'écran?
Exercice de concaténation de chaînes en JavaScript : qu'affichera-t-on à l'écran et pourquoi ? (exemple avec l'opérateur + et les chaînes/nombres)
Comment optimiser les re-rendus dans React ? Parlez de React.memo, useCallback, useMemo.
Comment résoudre la tâche withTimeout de manière alternative via Promise.race ? Qu'est-ce que Promise.race, en quoi diffère-t-il de Promise.all ?
Quels attributs possède la balise form?
Pourquoi pensez-vous à quitter votre emploi actuel?
Dans quelle ville êtes-vous ? Êtes-vous prêt à déménager ? Que pensez-vous de Hybrid ?
Qu'est-ce que les attaques XSS?
Connaissance des bases de données et travail avec les API
Parle-moi de ton expérience avec Node.js en prenant l'exemple d'un projet, qu'as-tu exactement développé dessus ?
Pourquoi l'API de composition a-t-elle été introduite dans Vue 3 ? Quels sont les avantages par rapport à l'API Options ?
Avez-vous déjà dû configurer ESLint et Prettier pour qu'ils ne soient pas en conflit?
Parlez de Promise : états, méthodes statiques (all, allSettled, any, race).
Obtenir des données sur les livres et leurs auteurs. Afficher les données sous forme de liste paginée de 10 livres par page au format : <titre du livre> - <auteur> api : [lien] spécification : [lien] si swagger ne s'ouvre pas, dans la racine 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('[lien]') .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>Chargement...</p>} <ul> {currentBooks.map((book, index) => ( <li key={index}>{book.title} - {book.author}</li> ))} </ul> <div> <button disabled={page === 1} onClick={() => setPage(page - 1)}> Précédent </button> <button disabled={page === totalPage} onClick={() => setPage(page + 1)}> Suivant </button> </div> </div> ); } Corrigez les erreurs et implémentez l'affichage d'une liste paginée de livres avec leurs auteurs.
Comment peut-on résoudre le problème avec l'état commun isOpen pour plusieurs nœuds ? Existe-t-il une option encore plus élégante ?
Quels projets avez-vous dû concevoir : à partir de zéro ou de grands blocs architecturaux?
Comment la réplication de la base de données (maître-esclave) fonctionnera-t-elle ? Comment le répartiteur de charge dirigera-t-il les requêtes vers différents serveurs avec différentes bases de données ?