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% покриття тестами не завжди є обов’язковим, іноді можуть бути випадки, коли певні частини коду не покриваються тестами через їх складність або невелике значення.