General Flashcards

1
Q

Що таке HTTP?

A

Це протокол передачі даних в мережі Інтернет. Він використовується для забезпечення комунікації між клієнтами і веб-серверами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Які методи HTTP-запитів ви знаєте?

A

GET: для отримання даних з сервера.
POST: для надсилання даних на сервер.
PUT: для оновлення або створення ресурсу.
PATCH: для часткового оновлення ресурсу.
DELETE: для видалення ресурсу.
HEAD: для отримання лише заголовків відповіді.
OPTIONS: для отримання інформації про можливості сервера.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Які знаєте коди відповіді (стану) HTTP?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Що таке Cross-Origin Resource Sharing? Як усунути проблеми з CORS?

A

Механізм обміну ресурсами з різними доменами.
Працює за принципом:
Якщо веб-сторінка, завантажена з одного джерела (origin), робить HTTP-запит до ресурсу на іншому джерелі, браузер виконує передзапит (preflight request). Сервер перевіряє заголовки запиту, щоб визначити, чи надавати доступ веб-сторінці. Якщо сервер погоджується, він включає відповідні заголовки у відповідь.Якщо веб-сторінка отримує позитивну відповідь підтримки CORS від сервера, браузер дозволяє JavaScript отримати ресурс.
Дозволити конкретним домена доступ.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Що таке cookie?

A

Це невеликі файли, які зберігають інформацію на браузері користувача. Зазвичай зберігають інфо про автентифікацю, сесію і т.д

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Що означає директива use strict?

A

Деректива яка дозволяє використовувати нові можливості і змінити старі.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Чим JS відрізняється під час роботи на front-end і back-end?

A

На фронтенді використовується для забезпечення інтерактивносіт на бек для обробки запитань та обробку даних

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Що таке статична і динамічна типізації?

A

Статична типізація - типи даних визначаються на етапі компіляції.
Динамічна типізація - типи даних визначаються під час виконання програми.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Як клієнт взаємодіє із сервером?

A

Клієнт відправляє HTTP запит, сервер обробляє запит і відправляє відповідь

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Що таке REST?

A

Це архітектурний стиль розробки веб додатків який спирається на принципи:
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 - клієнт може зберігати копії відповідей для покращення продуктивності.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Поясніть поняття мутабельність / іммутабельність? Які типи є мутабельними й навпаки?

A

Мутабельність - дані можуть бути змінені без створення нового об’єкта. (int, string, boolean)
Іммутабельність - щоб оновити данні має бути створений новий об’єкт. (object, array, list, set)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Розкажіть про піраміду тестування.

A
  1. Unit test - тести на найнижчому рівні, які перевіряють окремі функції або класи. Розробники.
  2. Integrational test - тести, які перевіряють взаємодію різних компонентів програми. Розробники або qa
  3. End to end test - навантаженян, мануальні. ui, security,

Чим вище по піраміді тим тести складніше, і дорожче

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Які типи автоматизованих тестів випадала нагода писати? Які бібліотеки при цьому використовували? Яким інструментам віддаєте перевагу ічому?

A

Писав unit тести використовуючи при цьому jest

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Що таке unit-тести? Яке місце впіраміді тестування займають unit-тести?

A

Тести, які перевіряють окремі компоненти програми, такі як функції чи методи, для визначення їх правильної роботи. Ці тести мають найнижчий рівень в піраміді тестування

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Що таке code coverage? Чи обов’язкове 100% покриття тестами коду?

A

Це метрика, яка вказує, яка частина коду програми була покрита автоматизованими тестами. 100% покриття тестами не завжди є обов’язковим, іноді можуть бути випадки, коли певні частини коду не покриваються тестами через їх складність або невелике значення.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Як заборонити браузеру віддавати кеш на HTTP-запит?

A

cache-control: no-store

17
Q

Що таке XSS (Cross-Site Scripting)?

A

Вид атаки при якому зловмисник впроваджує шкідливий код у вміст сторінки

18
Q

Розкажіть про патерни Observer, Pub/ Sub. Яка між ними різниця? Наведіть приклади реалізації цих патернів увідомих фреймворках/ бібліотеках/ браузерних API.

A

Коли один об’єкт змінює свій стан, всі залежні від нього об’єкти отримують повідомлення і автоматично оновлюються. Патерн Pub / Sub (Publish/Subscribe) - це розширений варіант патерну Observer, де є централізований “брокер” (або розсилка), який приймає повідомлення від видавців і розсилає їх підписникам.
Приклади: vue, angular, react.

19
Q

Розкажіть про функціональне програмування.

A

Парадигма програмування, де програма розглядається як послідовність функцій, які обробляють дані. Основні концепції FP включають в себе:

Чисті функції: Функції, які завжди повертають один і той же результат при однакових вхідних даних і не мають побічних ефектів.
Немутабельність: Дані, які не можуть бути змінені після їх створення.
Високорівневі функції: Функції, які можуть приймати інші функції як аргументи або повертати їх як результат.
Рекурсія: Використання рекурсії для розв’язання завдань.

19
Q

З якою метою може бути використаний event listener події fetch self.addEventListener(’fetch’, event => {}) ?

A

Івент який перехоплює запити до сервера. Може бути використаний для перехоплення запитів: кешування, або обробки в режимі офлайн

20
Q

Що таке Event loop іяк він працює? Розкажіть про мікрозадачі тамакрозадачі

A

Механізм виконання асинхронного коду в JavaScript. Cпочатку виконується синхроний код по черзі з call stack, весь асинхроний код попадає в event loop, в свою чергу event loop спочатку виконує всі мікрозадачі, після чого за потреби рендерить, якщо неміє нічого до рендеренгу приступає до виконная наступної/першої в черзі макрозадачі, і так далі по кругу поки не закінчаться макрозадачі.

Приклади мікрозадач: Promise.then(), Promise.catch(), Promise.finally(), process.nextTick() (у Node.js).
Приклади макрозадач: setTimeout, setInterval, обробники подій (onclick etc.), які викликаються браузером.

21
Q

Що таке TDD (Test Driven Development)?

A

Підхід до розробки, де спочатку пишуться тести, які описують очікувану поведінку програми, і лише потім реалізується код для їхнього проходження.

22
Q

Розкажіть детально про роботу HTTPS.

A

Секуьюрна версія http, яка шифрує комунікацію

  • Клієнт надсилає запит на сервер за допомогою протоколу HTTPS.
  • Сервер відповідає своїм сертифікатом та публічним ключем.
  • Клієнт перевіряє сертифікат та генерує спільний ключ для секретного обміну даними.
  • Всі дані, які передаються між клієнтом і сервером, шифруються симетричним ключем.
23
Q

Що таке V8Engine?

A

Це виконавчий двигун, розроблений Google для використання у браузерах Google Chrome та Chromium. Він відповідає за виконання та оптимізацію JavaScript-коду. V8 використовує техніки Just-In-Time компіляції