Разкажи ми за E2E тестовете с Playwright: как беше организирана системата за тестове, как се изпълняваше, как взаимодействат с бекенда, как постигат възпроизводимост на тестовите данни?
Frontend
Напишете функция за изчисляване на медианата на масив от числа.
Преглед на назначаването на роля на потребителя Vue 2 ```javascript export default { data() { return { user: { name: 'Ivan' } }; }, methods: { setRole(role) { this.user.role = role; } } } ```
Има масив от 200 ID. Трябва да направите заявка към /api/users/:id за всеки. Напишете функция, която изпълнява заявките, но не повече от N едновременно, и връща резултатите в реда на входния масив.
Преглед на миксина Nuxt 2 за откриване на устройство ```javascript export default { data() { return { isMobile: window.innerWidth < 768 } } } ```
Какви интересни случаи или нестандартни ситуации сте срещнали при работа с Playwright?
Как можете да кеширате страници/отговори в Nuxt приложение за намаляване на натоварването? Работили ли сте с Redis или Nitro кеширане?
Какви могат да бъдат причините за дългия бял екран при SSR (Nuxt)? Как да диагностицирате и решите проблема с голямото време до първия байт?
Разкажи за прехода от Vue 2 към Vue 3: какво се промени (VueX към Pinia, Options API към Composition API, Vue.extend към defineComponent, new Vue към createApp и т.н.)?
Разкажи за оптимизацията на производителността на страниците в Nuxt: с какво си се сблъсквал, какви проблеми си решил и как.
async function loadUsers(ids) { const users = [] ids.forEach(async id => { const res = await fetch(`/api/users/${id}`) const user = await res.json() users.push(user) }) return users } Identify the problem with this code and suggest how to fix it.
функция debounce(fn, delay) { let timer return function (...args) { clearTimeout(timer) timer = setTimeout(() => fn(args), delay) } }
Преглед на Nuxt миксина 2 - слушател за промяна на размера ```javascript export default { data() { return { width: 0 } }, mounted() { window.addEventListener('resize', this.onResize) this.onResize() }, methods: { onResize() { this.width = window.innerWidth } } } ```
Разкажи за сборщика при преминаване от Vue 2 към Vue 3: имаше Webpack (Vue CLI), сега Vite. Имаше ли интересни corner-case, конфликти в конфигурацията или неща, които трябваше да пренапишеш?