General Flashcards
Що таке HTTP?
Це протокол передачі даних в мережі Інтернет. Він використовується для забезпечення комунікації між клієнтами і веб-серверами.
Які методи HTTP-запитів ви знаєте?
GET: для отримання даних з сервера.
POST: для надсилання даних на сервер.
PUT: для оновлення або створення ресурсу.
PATCH: для часткового оновлення ресурсу.
DELETE: для видалення ресурсу.
HEAD: для отримання лише заголовків відповіді.
OPTIONS: для отримання інформації про можливості сервера.
Які знаєте коди відповіді (стану) HTTP?
200: OK
204: No Content
301: Permanent Redirect
302: Temporary Redirect
400: Bad Request
401: Unauthorized
403: Forbidden
404: Not Found
500: Internal Server Error
Що таке Cross-Origin Resource Sharing? Як усунути проблеми з CORS?
Механізм обміну ресурсами з різними доменами.
Працює за принципом:
Якщо веб-сторінка, завантажена з одного джерела (origin), робить HTTP-запит до ресурсу на іншому джерелі, браузер виконує передзапит (preflight request). Сервер перевіряє заголовки запиту, щоб визначити, чи надавати доступ веб-сторінці. Якщо сервер погоджується, він включає відповідні заголовки у відповідь.Якщо веб-сторінка отримує позитивну відповідь підтримки CORS від сервера, браузер дозволяє JavaScript отримати ресурс.
Дозволити конкретним домена доступ.
Що таке cookie?
Це невеликі файли, які зберігають інформацію на браузері користувача. Зазвичай зберігають інфо про автентифікацю, сесію і т.д
Що означає директива use strict?
Деректива яка дозволяє використовувати нові можливості і змінити старі.
Чим JS відрізняється під час роботи на front-end і back-end?
На фронтенді використовується для забезпечення інтерактивносіт на бек для обробки запитань та обробку даних
Що таке статична і динамічна типізації?
Статична типізація - типи даних визначаються на етапі компіляції.
Динамічна типізація - типи даних визначаються під час виконання програми.
Як клієнт взаємодіє із сервером?
Клієнт відправляє HTTP запит, сервер обробляє запит і відправляє відповідь
Що таке REST?
Це архітектурний стиль розробки веб додатків який спирається на принципи:
1. Uniform interface - єдиний набір методів для взаємодії з ресурсами. HTTP request методи, URI (Uniform Resource Identifiers), JSON
2. Client Server - cистема розділяється на клієнтську і серверну частини.
3. Stateless - весь стейт зберігає клієнт а не сервер. Кожен запит містить усю необхідну інформацію.
4. Сachable - клієнт може кешувати відповіді
5. Layered System - розділення системи на рівні. Нп. MVC паттерн
6. Code on Demand - клієнт може зберігати копії відповідей для покращення продуктивності.
Поясніть поняття мутабельність / іммутабельність? Які типи є мутабельними й навпаки?
Мутабельність - дані можуть бути змінені без створення нового об’єкта. (int, string, boolean)
Іммутабельність - щоб оновити данні має бути створений новий об’єкт. (object, array, list, set)
Розкажіть про піраміду тестування.
- Unit test - тести на найнижчому рівні, які перевіряють окремі функції або класи. Розробники.
- Integrational test - тести, які перевіряють взаємодію різних компонентів програми. Розробники або qa
- End to end test - навантаженян, мануальні. ui, security,
Чим вище по піраміді тим тести складніше, і дорожче
Які типи автоматизованих тестів випадала нагода писати? Які бібліотеки при цьому використовували? Яким інструментам віддаєте перевагу ічому?
Писав unit тести використовуючи при цьому jest
Що таке unit-тести? Яке місце впіраміді тестування займають unit-тести?
Тести, які перевіряють окремі компоненти програми, такі як функції чи методи, для визначення їх правильної роботи. Ці тести мають найнижчий рівень в піраміді тестування
Що таке code coverage? Чи обов’язкове 100% покриття тестами коду?
Це метрика, яка вказує, яка частина коду програми була покрита автоматизованими тестами. 100% покриття тестами не завжди є обов’язковим, іноді можуть бути випадки, коли певні частини коду не покриваються тестами через їх складність або невелике значення.
Як заборонити браузеру віддавати кеш на HTTP-запит?
cache-control: no-store
Що таке XSS (Cross-Site Scripting)?
Вид атаки при якому зловмисник впроваджує шкідливий код у вміст сторінки
Розкажіть про патерни Observer, Pub/ Sub. Яка між ними різниця? Наведіть приклади реалізації цих патернів увідомих фреймворках/ бібліотеках/ браузерних API.
Коли один об’єкт змінює свій стан, всі залежні від нього об’єкти отримують повідомлення і автоматично оновлюються. Патерн Pub / Sub (Publish/Subscribe) - це розширений варіант патерну Observer, де є централізований “брокер” (або розсилка), який приймає повідомлення від видавців і розсилає їх підписникам.
Приклади: vue, angular, react.
Розкажіть про функціональне програмування.
Парадигма програмування, де програма розглядається як послідовність функцій, які обробляють дані. Основні концепції FP включають в себе:
Чисті функції: Функції, які завжди повертають один і той же результат при однакових вхідних даних і не мають побічних ефектів.
Немутабельність: Дані, які не можуть бути змінені після їх створення.
Високорівневі функції: Функції, які можуть приймати інші функції як аргументи або повертати їх як результат.
Рекурсія: Використання рекурсії для розв’язання завдань.
З якою метою може бути використаний event listener події fetch self.addEventListener(’fetch’, event => {}) ?
Івент який перехоплює запити до сервера. Може бути використаний для перехоплення запитів: кешування, або обробки в режимі офлайн
Що таке Event loop іяк він працює? Розкажіть про мікрозадачі тамакрозадачі
Механізм виконання асинхронного коду в JavaScript. Cпочатку виконується синхроний код по черзі з call stack, весь асинхроний код попадає в event loop, в свою чергу event loop спочатку виконує всі мікрозадачі, після чого за потреби рендерить, якщо неміє нічого до рендеренгу приступає до виконная наступної/першої в черзі макрозадачі, і так далі по кругу поки не закінчаться макрозадачі.
Приклади мікрозадач: Promise.then()
, Promise.catch()
, Promise.finally()
, process.nextTick()
(у Node.js).
Приклади макрозадач: setTimeout
, setInterval
, обробники подій (onclick etc.), які викликаються браузером.
Що таке TDD (Test Driven Development)?
Підхід до розробки, де спочатку пишуться тести, які описують очікувану поведінку програми, і лише потім реалізується код для їхнього проходження.
Розкажіть детально про роботу HTTPS.
Секуьюрна версія http, яка шифрує комунікацію
- Клієнт надсилає запит на сервер за допомогою протоколу HTTPS.
- Сервер відповідає своїм сертифікатом та публічним ключем.
- Клієнт перевіряє сертифікат та генерує спільний ключ для секретного обміну даними.
- Всі дані, які передаються між клієнтом і сервером, шифруються симетричним ключем.
Що таке V8Engine?
Це виконавчий двигун, розроблений Google для використання у браузерах Google Chrome та Chromium. Він відповідає за виконання та оптимізацію JavaScript-коду. V8 використовує техніки Just-In-Time компіляції